学习
实践
活动
工具
TVP
写文章

17.找不同

题号389:

给定两个字符串s和t,它们只包含小写字母。

字符串t由字符串s随机重排,然后在随机位置添加一个字母。

请找出在t中被添加的字母。

示例:

输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。

解题思路:

因为两个字符串只有一个字符不同,其他字符都是两两相同的,很容易想到用异或方法,所有字符异或的最后结果即为不同的字符。

注意:

1 当第一个字符串为空时,直接返回第二个字符串的字符即可;

2 当第一个字符串不空,设不同的字符diff,初始化为第一个字符串的第0位字符,遍历两个字符串逐个异或操作;

3 最后返回两个字符串中所有字符的异或结果diff。

代码实现:

class Solution {

public:

char findTheDifference(string s, string t) {

if(!s.length()) return t[0];

int count=0;

char diff;

for(int i=0;i

if(i==0)

diff=s[i];

else

diff^=s[i];

}

for(int i=0;i

diff^=t[i];

}

return diff;

}

};

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180414G0GKIO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券