题目:给定两个字符串 s
和 t
,它们只包含小写字母。
字符串 t
由字符串 s
随机重排,然后在随机位置添加一个字母。
请找出在 t
中被添加的字母。
例如:
输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。
解题思路:本质上是将俩个字符串做对比,找到其中不属于俩个共有的字符串
# 将t中符号对应的ASCII码值相加,然后逐个减去s中符号的ASCII码值,这样剩下的那个就是添加的数了,我愿称之为低配版的位运算
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
res = 0
for i in t:
res += ord(i)
for j in s:
res -= ord(j)
return chr(res)
学习2个知识:
1.一个是ord()函数,ord()
函数是chr()
函数和unichar()
函数(对于Unicode对象)的配对函数,以某一个字符为参数返回对应参数的ASCII码值。
2.chr()函数,将传入的参数的ASCII码转换成字符,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。