网站建设与规划的书,南阳哪里做网站,长沙建网站设计,泉州优化seo网站关键词优化题目链接#xff1a;http://acm.hust.edu.cn/vjudge/contest/view.action?cid84562#problem/A 题意#xff1a; 判断字符串是否相等#xff0c;有以下两种情况任意一种就想等 1#xff09;它们是完全相等的。 2#xff09;把字符串a分离为两个长度相等的字符串a1#xf…题目链接http://acm.hust.edu.cn/vjudge/contest/view.action?cid84562#problem/A 题意 判断字符串是否相等有以下两种情况任意一种就想等 1它们是完全相等的。 2把字符串a分离为两个长度相等的字符串a1a2字符串b也同样分为两个长度相同的字符串b1b2以下两种情况任意一种就想等 1a1与b1相等a2与b2相等。 1a1与b2相等a2与b1相等。 输入的两个字符串长度一定是相等的。两个字符串相等输出YES否则输出NO。 案例 input aaba abaa output YES 思路分析 当字符串的长度为奇数时要判断整个字符串是否完全相等当字符串长度为偶数时就要把它分为长度相等的两部分再一次判断是否为奇数。。。。。 刚开始定义的是string类但是很难写下去建议用char型定义数组。 源代码如下 1 #includeiostream2 #includecstdio3 #includecstring4 #define maxn 2000005 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 t0;
12 for(int i0;il;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(al/2,bl/2,l/2))||(DO(a,bl/2,l/2)DO(al/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 lenstrlen(a);
34 if(DO(a,b,len))
35 coutYESendl;
36 else
37 coutNOendl;
38 return 0;
39 } 转载于:https://www.cnblogs.com/q-c-y/p/4683197.html