- 题目描述:
给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接。
- 样例:
给出 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++特别特别特别的不熟练。。。字符串相关特别特别不熟。。。