[经典面试题][腾讯]字符串匹配

题目

假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配,比如:abcda和adabc,由于出现的字符个数都是相同,只是顺序不同,所以这两个字符串是匹配的。要求高效。

思路

假定字符串中都是ASCII字符。用一个数组来计数,前者加,后者减,,全部为0则匹配。

代码

/*———————————————* 日期:2015-02-14* 作者:SJF0115* 题目: 字符串匹配* 来源:腾讯* 博客:———————————————–*/;class Solution {public:bool StrMatch(string str1,string str2){int size1 = str1.size();int size2 = str2.size();if(size1 <= 0 || size2 <= 0 || size1 != size2){return false;}//ifint count[256];// 初始化memset(count,0,sizeof(count));// 前者加for(int i = 0;i < size1;++i){++count[str1[i]];}(int i = 0;i < size2;++i){–count[str2[i]];}(int i = 0;i < 256;++i){if(count[i] != 0){return false;}//if};}};int main() {Solution solution;string str1(“afafafa”);string str2(“afafaf”);cout<<solution.StrMatch(str1,str2)<<endl;}

与其在那里苦苦挣扎,碍于面子硬撑,倒不如微笑着面对,

[经典面试题][腾讯]字符串匹配

相关文章:

你感兴趣的文章:

标签云: