Brother String

若两个字符串的字符一样,但是顺序不一样,称为兄弟字符串[如:army和mary]
判断两个字符串是否是兄弟字符串

 

流程图:

C语言代码:

 1 #include<stdio.h>
 2 #include <stdlib.h>
 3 #include<string.h>
 4 #include <time.h>
 5 void isBroStr(char str1[1024],char str2[1024])
 6 { 
 7     int i,j,k;
 8     if(strlen(str1)!=strlen(str2))
 9     {
10         printf("%s 和 %s 不是兄弟字符串!\n",str1,str2);
11     }
12     else
13     {
14         char str2_2[1024];
15         strcpy(str2_2,str2);//备份str2
16         for(i=0;i<strlen(str1);i++)
17         {
18             int new_strlen2 = strlen(str2);
19             for(j=0;j<strlen(str2);j++)
20             {
21                 if(str1[i]==str2[j])//若存在,则将其删除
22                 {
23                     for(k = j; k < strlen(str2); k++)
24                     {
25                         str2[k] = str2[k + 1];
26                     }
27                     break;
28                 }
29             }
30             if(new_strlen2 - strlen(str2)!=1)//若这一轮没有找到相同字符,则提前结束
31             {
32                 printf("%s 和 %s 不是兄弟字符串!\n",str1,str2_2);
33                 break;
34             }
35         }
36         if(strlen(str2)==0)
37         {
38             printf("%s 和 %s 是兄弟字符串!\n",str1,str2_2);
39         }
40     }
41 }
42 int main()
43 {  
44     clock_t start, finish;
45     double  duration;
46     char str1[1024],str2[1024];
47 
48     printf("请输入字符串1:\n");
49     scanf("%s",&str1);
50     printf("请输入字符串2:\n");
51     scanf("%s",&str2);
52 
53     start = clock();
54     isBroStr(str1,str2);
55     finish = clock();
56     duration = (double)(finish - start) / CLOCKS_PER_SEC;
57     printf("执行时间:%d \n", duration);
58 
59     system("pause");
60     return 0;
61 }
View Code

 

posted @ 2016-03-24 13:56  myPleasure  阅读(123)  评论(0)    收藏  举报