确定两串乱序同构

题目描述

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。

给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。

测试样例:
"This is nowcoder","is This nowcoder"
返回:true
 
"Here you are","Are you here"
返回:false

分析:可以重构的条件是两个字符串包含的各种字符个数是相同的!!!可以借用数组[256]数组的下标即为对应的字符的ASCII码。代码如下:
class Same {
public:
    bool checkSam(string stringA, string stringB) {
        if(stringA.size() != stringB.size()) 
            return false;
        char count[256]={0};
        for(int i = 0; i < stringA.size(); i++) {
            count[stringA[i]]++;
            count[stringB[i]]--;
        }
        for(int i = 0; i < 256; i++) 
            if(count[i] != 0) 
                return false;
        return true;    
    }
};

 

posted @ 2015-10-28 10:43  fcq1129  阅读(166)  评论(0)    收藏  举报