windows平台
错误示例
#include
#include
int main(void)
{
char list1[150], list2[150], list_result[150];
int i = 0, j = 0, count = 0, count_max=0;
scanf("%s%s", list1, list2);
printf("%s\n%s\n", list1, list2);
for (i = 0; list1[i] != ';'++ i)for {
( =j 0 ;( [list1+i]j!= ')' and( [ ]list2!=j')' ; ++)if j([
{
+ ]list1==i [ j] ) list2++j;printf {
count("%d "
,);} countelse=
0
;
count } printf(
"\n"
);if()
= ;count > count_max=
count_max 0 count;
count } printf(
"%d\n"
,);return count_max0;
} #include
#
正确示例
includeint
main(
void )char[150
{
] list1,[150] list2,[150] list_result;int=0
, i = 0, j = 0, count = 0, count_max=0 , tmp_i =0; tmp_jscanf_s("%s%s"
,,sizeof( list1),,list1sizeof( list2) );list2printf("%s %s\n"
,,); list1for list2(=
0 ;i [ ]!= list1';'i++ ) =0 i;printf {
count ( "-i%d\n",
);for( i=0
; [j ] !=';' list2++j) printf ("----j%d\n" j,)
{
;if([ j]==
[ ]list1)i= ; list2=j;=
{
tmp_i 0 i;
tmp_j printf j(
count "------------tmp_i,tmp_j--%d, %d\n" ,,
);for( tmp_i; tmp_j([
] !=')' andlist1(tmp_i[ ] !=')' ; ++list2,tmp_j++ ) if([ tmp_i]== tmp_j[]
{
) ++list1;tmp_iprintf ( list2"-----------------------------%d %d %c %c %d \n"tmp_j,,
{
count,[
],[] tmp_i, j) list1;tmp_i}else list2breaktmp_j;} countif(
)
=
;else
=
0 ;count > count_max}
count_max } countprintf
(
count "+++++%d\n" ,)
;
if
()=;i=0
; }count > count_maxprintf
count_max ( count"%d\n"
count , );
return
0;}# count_maxinclude#
include intmain
(
牛客网代码
void)
char[
150 ],[150
{
] list1,[150] list2;int=0 list_result,=0,
= i 0 ,= j 0 ,= count 0 ,= count_max0; scanf tmp_i ("%s%s", tmp_j,);
for(=0 list1;list2[]
!= ';'i ++ )= list10i; for (= i0; {
count [ ]!=
';' ++j ) if( list2[j] == [] j)=
; =list1;i= 0 list2;jfor(
{
tmp_i ; i(
tmp_j [ j]
count != ')'and
( [] !=list1')'tmp_i; ++ ,++ ) iflist2(tmp_j[ ] ==[] tmp_i)++ tmp_j;else
break ;list1iftmp_i( ) list2=tmp_j;else
count=0
;
}}
printf (count > count_max"%d\n"
count_max , count)
;
count return 0;
}
count_max
感悟:逻辑分支好多,bug点好多
有一个可靠的测试用例集多么重要,不然都不知道程序能不能稳健运行;
log打印多么重要,能够帮助观察内部运行情况,及偏差;
思路:
list 1中每个字符
list1固定的一个字符c与list2中第一个字符比较,有相同的值c,则计算两字符串字母c后面相同字母的个数;
计算len,比较和保留最大len
list1固定的一个字符c与list2中第二个字符比较,如果有相同的值c,则计算两字符串字母c后面相同字母的个数;
。
。
。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)