词语变形练习

来源:互联网 发布:仙桃数据谷商业一条街 编辑:程序博客网 时间:2024/04/27 20:22

对于两个字符串A和B,如果A和B中出现的字符种类相同且每种字符出现的次数相同,则A和B互为变形词,请设计一个高效算法,检查两给定串是否互为变形词。
给定两个字符串A和B及他们的长度,请返回一个bool值,代表他们是否互为变形词。
测试样例:
“abc”,3,”bca”,3
返回:true

非常简单利用哈希表实现即可,本题中字符串最多256可用长度为256的数组实现,效率高。
代码如下:

class Transform {public:    bool chkTransform(string A, int lena, string B, int lenb) {        int a[256];        memset(a,0,256*sizeof(int));        int b[256];        memset(b,0,256*sizeof(int));        for(int i=0;i!=lena;++i)            a[A[i]]++;        for(int i=0;i!=lenb;++i)            b[B[i]]++;        for(int i=0;i!=256;++i){            if(a[i]!=b[i])            return false;        }        return true;    }};
0 0
原创粉丝点击