首页 > 代码库 > Leetcode 389 Find the difference
Leetcode 389 Find the difference
Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input: s = "abcd" t = "abcde" Output: e Explanation: ‘e‘ is the letter that was added.
本题的解法很类似single number,由于两个str只有一个字母不同。所以可以用xor。注意使用ord 和 chr 对于char和int之间进行转换。
1 class Solution(object): 2 def findTheDifference(self, s, t): 3 """ 4 :type s: str 5 :type t: str 6 :rtype: str 7 """ 8 ans = 0 9 for x in s: 10 ans ^= ord(x) 11 for y in t: 12 ans ^= ord(y) 13 return chr(ans)
解法二是使用collections.Counter
1 class Solution(object): 2 def findTheDifference(self, s, t): 3 """ 4 :type s: str 5 :type t: str 6 :rtype: str 7 """ 8 ds = collections.Counter(s) 9 dt = collections.Counter(t) 10 return (dt - ds).keys().pop()
Leetcode 389 Find the difference
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。