题解 | #判断两个字符串是否为变形词#
判断两个字符串是否为变形词
http://www.nowcoder.com/practice/b07c464a107e421ebbd2c82aebd42e39
//简单的题简单做
//申请一个长度为256的数组,可以涵盖所有的字符就行
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
if(n!=m)
{
cout<<"false\n";
return 0;
}
string str1,str2;
cin>>str1>>str2;
int arr[256]={0};//一直都搞不懂牛客的这个c++编译器什么毛病有的时候数组有初始值,有的时候就是随机数?????
for(int i=0;i<str1.size();i++)
arr[str1[i]]++;
for(int i=0;i<str2.size();i++){
arr[str2[i]]--;
if(arr[str2[i]]<0)//说明出现次数不一样
{
cout<<"false"<<endl;
return 0;
}
}
// for(int i=0;i<256;i++)
// cout<<arr[i]<<" ";
// return 0;
//再遍历一遍arr数组,arr数组里面所有的值都应该为0
for(int i=0;i<256;i++)
{
if(arr[i]!=0)
{
cout<<"false"<<endl;
return 0;
}
}
cout<<"true\n";
return 0;
}
//申请一个长度为256的数组,可以涵盖所有的字符就行
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
if(n!=m)
{
cout<<"false\n";
return 0;
}
string str1,str2;
cin>>str1>>str2;
int arr[256]={0};//一直都搞不懂牛客的这个c++编译器什么毛病有的时候数组有初始值,有的时候就是随机数?????
for(int i=0;i<str1.size();i++)
arr[str1[i]]++;
for(int i=0;i<str2.size();i++){
arr[str2[i]]--;
if(arr[str2[i]]<0)//说明出现次数不一样
{
cout<<"false"<<endl;
return 0;
}
}
// for(int i=0;i<256;i++)
// cout<<arr[i]<<" ";
// return 0;
//再遍历一遍arr数组,arr数组里面所有的值都应该为0
for(int i=0;i<256;i++)
{
if(arr[i]!=0)
{
cout<<"false"<<endl;
return 0;
}
}
cout<<"true\n";
return 0;
}