讨论帖地址:点击打开链接/*
假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配,
比如:abcda和adabc,由于出现的字符个数都是相同,只是顺序不同,
所以这两个字符串是匹配的。要求高效!
*/
#include <iostream>
#include <cstring>
bool match_string(char* left,char* right,int n)
{
if(left==NULL || right==NULL || n<=0)
return false;
int asc[128];
std::memset(asc,0,128);
for(int i=0;i<n;++i)
{
++asc[left[i]];
--asc[right[i]];
}
for(int i=0;i<n;++i)
{
if(asc[i]!=0)
return false;
}
return true;
}
int main(int argc,char* argv[])
{
char left[]={"abcda"};
char right[]={"adabc"};
std::cout<<match_string(left,right,std::strlen(left))<<std::endl;
system("PAUSE");
return 0;
}