0%

242. 有效的字母异位词

242. 有效的字母异位词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool isAnagram(string s,string t){
int record[26]={0};
for(int i = 0 ;i<s.size();i++){
// 并不需要记住字符a的ASCII,只要c求出一个相对数值就可以了
record[s[i]-'a']++;
}
for(int i =0 ;i <t.size();i++){
record[t[i]-'a']--;
}
for(int i = 0 ;i <26;i++){
if(record[i]!=0){
return flase;
}
}
return true;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
bool isAnagram(string s, string t) {
int record[26]={0};
for(int i=0;i<s.size();i++){
record[s[i]-'a']++;
}
for(int i = 0 ; i<t.size();i++){
record[t[i]-'a']--;
}
for(int i = 0 ; i <26;i++){
if(record[i]!=0)
return false;
}
return true;
}
};

丢人现眼的暴力(原来之前的这种思维题算是哈希法0.0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
using namespace std;
int main(){
string a,b;
cin>>a;
cin>>b;
int A[60000];
int B[60000];
for(int i = 0 ; i < a.size();i++){
A[a[i]]=A[a[i]]+1;
}

for(int i = 0 ; i < b.size();i++){
if(A[b[i]]==A[a[i]]){
A[a[i]]--;
}
}
int flag=0;
for(int i = 0 ; i <a.size();i++){
if(A[a[i]]!=0){
flag=1;
}

}
if (flag==0){
cout<<"niubi";
}
else{
cout<<"goushi";
}

return 0;
}
-------------本文结束感谢您的阅读-------------
老板你好,讨口饭吃