分享关于编程之美3.1自己编写的代码,很简单。
s2.沿着s1匹配(循环匹配,利用%Length技巧),匹配上,返回true。
1 //BOP3.1 2 3 char src[] = "AABBCD";//s1, 4 char des[] = "DAAB";//s2 5 6 bool CyclicShift(char des[],char src[]) 7 { 8 int LenS = strlen(src); 9 int LenD = strlen(des); 10 bool flag = true; 11 for(int i =0;i<LenS;i++) 12 { 13 flag = true; 14 for(int j=0;j<LenD;j++) 15 { 16 if(des[j] != src[(i+j)%LenS]) 17 { 18 flag = false;//标记没有满足循环移位 19 break;//如果不满足循环移位,则跳出。 20 21 } 22 } 23 if(flag == true) 24 return true; 25 } 26 return false; 27 28 } 29 30 void main() 31 { 32 cout<<CyclicShift(des,src); 33 }