题目:
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = "abcd"
t = "abcde"
输出:
e
解释:
'e' 是那个被添加的字母。
我的解答:
一个一个找,暴力方法。解答错误。。。
class Solution(object):
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
if s == '':
return t[0]
s = sorted(s)
t = sorted(t)
be = 0
end = len(s)
while be < end - 1:
mid = (be + end) // 2
if s[mid] == t[mid]:
be = mid
else:
end = mid
return t[end]
参考解答:
转化为数字后求和相减,差就是多出来的数字。或者转化为数字后异或也可以。
https://blog.youkuaiyun.com/IT_job/article/details/80405250
class Solution(object):
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
sumt=0;sums=0
for t1 in t:
sumt+=ord(t1)#字符转换成十进制数
for s1 in s:
sums+=ord(s1)
return chr(sumt-sums)