首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >702. 连接两个字符串中的不同字符

702. 连接两个字符串中的不同字符

作者头像
和蔼的zhxing
发布2018-09-04 13:16:52
发布2018-09-04 13:16:52
2K0
举报

连接两个字符串中的不同字符。 给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接。 样例 给出 s1 = aacdb, s2 = gafd 返回 cbgf 给出 s1 = abcs, s2 = cxzca; 返回 bsxz c++11中规定字符串可以直接相加,字符串对象可以加字符串常量,可以加字符。 string::find()函数很好用,这里恰好可以做一个总结: 共有下面四种函数原型: 四种函数原型返回值都是size_t,即字符串的一个索引,如果找到返回索引,如果找不到返回-1,即string::npos,打印出来是:4294967295。直接用npos就可以了。

代码语言:javascript
复制
string (1)     //可以直接查找字符串对象,
size_t find (const string& str, size_t pos = 0) const noexcept;
c-string (2)    //从类型的字符串
size_t find (const char* s, size_t pos = 0) const;
buffer (3)       //从pos开始查找s的前n个字符
size_t find (const char* s, size_t pos, size_type n) const;
character (4)    //查找字符
size_t find (char c, size_t pos = 0) const noexcept;

我们这里用的是最后一个,定义一个新的string对象res,然后先遍历s1,在s2中寻找s1的每个字符,找不到的话就把这个字符加到res上,然后对s2做同样的操作,就能找到s2中和s1不同的字符了,这样最后加起来就只最终的res。

代码语言:javascript
复制
string concatenetedString(string &s1, string &s2) {
        string res;
        if(s2.size()==0)
        return s1;
        if(s1.size()==0)
        return s2;
        for(int i=0;i<s1.size();i++)
        {
            if(s2.find(s1[i])==string::npos)
            res+=s1[i];
        }
        for(int i=0;i<s2.size();i++)
        {
            if(s1.find(s2[i])==string::npos)
            res+=s2[i];
        }
        return res;
        // write your code here
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.11.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档