[lintcode]702 连接两个字符串中的不同字符

  • 题目描述:

给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接。

  • 样例:

给出 s1 = aacdb, s2 = gafd
返回 cbgf
给出 s1 = abcs, s2 = cxzca;
返回 bsxz

  • 答案:
class Solution {
public:
    /*
     * @param : the 1st string
     * @param : the 2nd string
     * @return: uncommon characters of given strings
     */
    string concatenetedString(string &s1, string &s2) {
        // write your code here
        map<char,int>word1,word2;
        string s="";//用来存放新的string
    
        for(int i=0;i<s2.size();i++){
            word2[s2[i]]++; //对string2的字符进行映射计数
        }
        for(int i=0;i<s1.size();i++){
            word1[s1[i]]++; //对string1的字符进行映射计数
            if(word2[s1[i]]==0){ //如果string1中的这个字符没有在string2出现过,则把这个字符加到新的string里
                s = s+s1[i];
            }
        }
        for(int i=0;i<s2.size();i++){
            if(word1[s2[i]]==0){//如果string2中的这个字符没有在string1出现过,则把这个字符加到新的string里
                s = s+s2[i];
            }
        }
        s1=s;
        return s1;
    }
};
  • 小结

我真是觉得我C++特别特别特别的不熟练。。。字符串相关特别特别不熟。。。

posted @ 2017-10-24 22:56  小小西红柿  阅读(843)  评论(0编辑  收藏  举报