日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Equivalent Strings

發布時間:2024/7/19 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Equivalent Strings 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84562#problem/A

題意:

? ? ?判斷字符串是否相等,有以下兩種情況任意一種就想等

? ? ?1)它們是完全相等的。

? ? ?2)把字符串a分離為兩個長度相等的字符串a1,a2,字符串b也同樣分為兩個長度相同的字符串b1,b2,以下兩種情況任意一種就想等

? ? ? ? ? ? ? ? ? (1)a1與b1相等,a2與b2相等。

? ? ? ? ? ? ? ? ? (1)a1與b2相等,a2與b1相等。

? ? ?輸入的兩個字符串長度一定是相等的。兩個字符串相等,輸出YES,否則,輸出NO。

? ? ?案例:

? ? ? input

? ? ? aaba

? ? ? abaa

? ? ? output

? ? ? YES

思路分析:

? ? ? ?當字符串的長度為奇數時,要判斷整個字符串是否完全相等,當字符串長度為偶數時,就要把它分為長度相等的兩部分,再一次判斷是否為奇數。。。。。

? ? ? ?剛開始定義的是string類,但是很難寫下去,建議用char型,定義數組。

源代碼如下:

1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #define maxn 200000 5 using namespace std; 6 char a[maxn],b[maxn]; 7 int DO(char *a,char *b,int l) 8 { int t; 9 if(l%2!=0) //長度為奇數判斷 10 { 11 t=0; 12 for(int i=0;i<l;i++) 13 if(a[i]!=b[i]) 14 t++; 15 if(!t) 16 return 1; 17 else 18 return 0; 19 } 20 21 else 22 { 23 if((DO(a,b,l/2)&&DO(a+l/2,b+l/2,l/2))||(DO(a,b+l/2,l/2)&&DO(a+l/2,b,l/2)))
//長度為偶數判斷 24 return 1; 25 else 26 return 0; 27 } 28 } 29 int main() 30 { 31 int len; 32 scanf("%s%s",a,b); 33 len=strlen(a); 34 if(DO(a,b,len)) 35 cout<<"YES"<<endl; 36 else 37 cout<<"NO"<<endl; 38 return 0; 39 }

?

轉載于:https://www.cnblogs.com/q-c-y/p/4683197.html

總結

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

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