3、字符易位破译,使用string类实现:
编写函数,测试两个字符串是否字符异位相等,即两个字符串中包含的字母是相同的,但次序可以不同,
如“silent” 和“listen” 是字符异位相等,但“baac”与“abcc” 不是。
bool isAnagram(const string & str1, const string & str2);
void sort(string & str);
提示:先对字符串进行排序,然后再比较。(程序取名hw11_02.cpp)
#include <iostream>
#include <string>
using namespace std;
void sort(string & str);
bool isAnagram(const string & s1, const string & s2);
int main()
{
string str1, str2;
cout << "Enter two strings: ";
cin >> str1 >> str2;
sort(str1);
sort(str2);
if (isAnagram(str1, str2)) {
cout<<"yes"<<endl;
}
else {
cout<<"no"<<endl;
}
return 0;
}
void sort(string & str)
{
for(int i = 0; i < str.length() - 1; i++) {
for(int j = i + 1; j < str.length(); j++) {
if (str[i] > str[j]) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
cout<<"sorted:"<<str<<endl;
}
bool isAnagram(const string & s1, const string & s2) {
if (s1.length() != s2.length()) {
return false;
}
for (int i = 0; i < s1.length(); i++) {
if (s1[i]!=s2[i]) {
return false;
}
}
return true;
}
Post Views: 6
😍😍😍
太强了,羊羊👍