字符串处理III

82. 落单的数

给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

思路:读每一个数字,放入另外一个列表,如果不存在则放入,存在则删除,剩下来的就是落单的数了。

classSolution:

"""

@param: A: An integer array

@return: An integer

"""

defsingleNumber(self, A):

# write your code here

B=[]

foriinA:

ifinot inB:

B.append(i)

else:

B.remove(i)

returnB.pop()

83. 落单的数 II

给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。

遍历A中的数字存入B,如果B中该数字有3个,删掉3个,剩下的就是落单的数了。

代码如下:

classSolution:

"""

@param: A: An integer array

@return: An integer

"""

defsingleNumberII(self, A):

# write your code here

B=[]

foriinA:

#if i not in B:

B.append(i)

ifB.count(i)==3:

B.remove(i)

B.remove(i)

B.remove(i)

returnB.pop()

运行结果:

84. 落单的数 III

给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。

跟落单的数思路一样,

classSolution:

"""

@param: A: An integer array

@return: An integer array

"""

defsingleNumberIII(self, A):

# write your code here

B=[]

foriinA:

ifinot inB:

B.append(i)

else:

B.remove(i)

returnB

运行结果:

有的测试超时了,这样调用list的append和remove函数还不是最好的办法。

撤,明天再说。

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

扫码关注云+社区

领取腾讯云代金券