日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

交替字符串

發布時間:2025/3/16 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 交替字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

交替字符串

題目詳情:

如果字符串str3能夠由str1和str2中的字符按順序交替形成,那么稱str3為str1和str2的交替字符串。例如str1="abc",str2="def",那么"adbecf", "abcdef", "abdecf", "abcdef", "adefbc"等等都為str1和str2的交替字符串。更形式化的,str3的生成算法如下:

str3=""

while str1不為空 or str2不為空:

?把str1或str2的首字符加入到str3,并從str1或str2中刪除相應的字符

end

給定str1, str2,和str3,判斷str3是否為str1和str2的交替字符串。


輸入格式:

多組數據,每組數據三行,分別是str1,str2,str3。str1,str2的長度在[1..100]范圍內,str3的范圍在[1..200]范圍內。字符串只包含小寫英文字母。

輸出格式:

每組數據輸出一行YES或者NO。

答題說明:

輸入樣例

a

b

ab

a

b

ca

輸出樣例:

YES

NO

AC代碼:

#include<stdio.h> #include<string.h>int fun(char *str1,char *str2,char *str3) {int i=0,j=0,k=0;int len1=strlen(str1),len2=strlen(str2),len3=strlen(str3);while(str1[i]!='\0'||str2[j]!='\0'){if(str1[i]==str3[k]){i++;k++;}else{if(str2[j]==str3[k]){j++;k++;}elsereturn 0;}}while(k<len3&&i<len1){if(str1[i]==str3[k]){i++;k++;}elsereturn 0;}while(k<len3&&j<len2){if(str2[j]==str3[k]){j++;k++;}elsereturn 0;}return 1; } int main() {char str1[103],str2[103],str3[206];while(~scanf("%s%s%s",str1,str2,str3)){if(fun(str1,str2,str3)){printf("YES\n");}elseprintf("NO\n");}return 0; }

總結

以上是生活随笔為你收集整理的交替字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。