Strobogrammatic Number
A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside down).
Write a function to determine if a number is strobogrammatic. The number is represented as a string.
For example, the numbers "69", "88", and "818" are all strobogrammatic.
翻转后对称的数就那么几个,我们可以根据这个建立一个映射关系:8->8, 0->0, 1->1, 6->9, 9->6
,然后从两边向中间检查对应位置的两个字母是否有映射关系就行了。比如619,先判断6和9是有映射的,然后1和自己又是映射,所以是对称数。
while循环的条件是
left<=right
class Solution(object):
def isStrobogrammatic(self, num):
"""
:type num: str
:rtype: bool
"""
left = 0
right = len(num)-1
dic = {'9':'6', '6':'9', '1':'1', '8':'8', '0':'0'}
while left <= right:
# 如果字母不存在映射或映射不对,则返回假
if num[left] not in dic or num[right] not in dic or dic[num[right]] != num[left]:
return False
left += 1
right -= 1
return True
Last updated
Was this helpful?