Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- 165. Compare Version Numbers
- 1.用快慢指针把两组 version number 转化成纯数字并放到queue中这样方便后面的诸位比较。
- 2.用while loop同步比较两个queue,如果比出大小就直接返回。
- 3.经过loop之后剩下的queue在检查里面是不是都为‘0’,哪个非0,哪个大。
- """
- class Solution(object):
- def decoding(self, s):
- q = collections.deque()
- fast = 0
- slow = -1
- while fast < len(s):
- if slow == -1:
- if s[fast] != '.':
- slow = fast
- else:
- if s[fast] == '.':
- val = int(s[slow:fast])
- q.append(val)
- slow = -1
- fast += 1
- if fast == len(s) and slow != -1:
- q.append(int(s[slow:]))
- return q
- def valid(self, ls):
- i = 0
- while i < len(ls):
- if ls[i] != 0:
- return True
- i += 1
- return False
- def compareVersion(self, version1, version2):
- """
- :type version1: str
- :type version2: str
- :rtype: int
- """
- q1 = self.decoding(version1)
- q2 = self.decoding(version2)
- while q1 and q2:
- v1 = q1.popleft()
- v2 = q2.popleft()
- if v1 > v2:
- return 1
- elif v1 < v2:
- return -1
- if q1 and self.valid(q1):
- return 1
- if q2 and self.valid(q2):
- return -1
- return 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement