題目描述
給定兩個字符串str1和str2,如果str1和str2中出現的字符種類出現的一樣且每種字符出現的次數也一樣,那么str1和str2互為變形詞。請判斷str1和str2是否為變形詞
輸入描述:
輸入包括3行,第一行包含兩個整數n,m(1 \leq n,m\leq 10^5)(1≤n,m≤10^5)
分別代表str1和str2的長度,第二行和第三行為兩個字符串,分別代表str1和str2。
輸出描述
如果str1和str2互為變形詞,請輸出“true”,否則輸出“false”
示例
#include<iostream>
#include<string>
using namespace std;bool judge(string &s1, string &s2){int count[256] = { 0 }; //字符串中每個字符默認初始次數為0次int i;for (i = 0; i < s1.size(); ++i){count[s1[i]]++; //s1取出來的值作為計數數組的下標}for (i = 0; i < s2.size(); ++i)count[s2[i]]--;for (int i = 0; i < 256; i++){if (count[i] != 0){return false;}}return true;
}int main()
{string s1;string s2;long len1;long len2;cin >> len1;cin >> len2;if (len1 != len2){return false;}cin >> s1;cin >> s2;bool ret = judge(s1, s2);if (ret == true){printf("true\n");}else{printf("false\n");}system("pause");return 0;
}