经典笔试题 ——判断两个字符串是否为变形词

  1. 判断两个字符串是否为变形词

【题目】给定两个字符串s1,s2,如果s1s2中出现的字符种类和字符次数一样多,则s1s2互为变形词,实现函数判断两个字符串是否为变形次。

【例如】s1=”123”,s2=”321” ,return true;

s1=”123”,s2=”2113”,return false;


分析:判断两个字符串长度是否相等,不等返回错,
相等,先进行排序,当排好序时,进行一个一个对比比较,若不同则返回错,相同返回真为变形词


 #include<iostream>
  2 using namespace std;
  3 
  4 #include<string>
  5 #include<string.h>
  6 
  7 //冒泡排序
  8 void bubblesort(char a[], int n)
  9 {
 10     int i, j,flag = 1;
 11     int temp;
 12     for(i = 1; i<n && flag == 1; i++)
 13     {
 14         flag = 0;
 15         for(j = 0; j<n-1; j++)
 16         {
 17             if(a[j] > a[j+1])
 18             {
 19                 flag = 1;
 20                 temp = a[j];
 21                 a[j] = a[j+1];
 22                 a[j+1] = temp;
 23             }
 24         }
 25     }
 26 }
//比较
 64 bool compare(char *s1, char *s2)
 65 {
 66    for(int i=0; i<strlen(s1); ++i)
 67     {
 68         if(s1[i] != s2[i])
 69       {
 70             cout<<"error! but size equal"<<endl;
 71             return false;
 72         }
 73     }
 74     cout<<"success!"<<endl;
 75     return true;
 76 }
 77 int main()
 78 {
 79     char s1[] = "48aa2fc33fgtra";
 80     char s2[] = "aa3fag2rt84ca3";
 81 
 82     int i=0,j=0;
 83     if(strlen(s1) != strlen(s2))
 84     {
 85         cout<<"error! differ size"<<endl;
 86         return false;
 87     }
 88     bubblesort(s1, strlen(s1));
 89     bubblesort(s2, strlen(s2));
 90     compare(s1, s2);
 91     return 0;
 92 }


猜你喜欢

转载自blog.csdn.net/csdn_wanziooo/article/details/76999523
今日推荐