码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 389 Find the difference

时间:2016-12-24 07:44:15      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:gen   pre   class   let   log   转换   self   return   sel   

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

标签:gen   pre   class   let   log   转换   self   return   sel   

原文地址:http://www.cnblogs.com/lettuan/p/6216604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!