Strobogrammatic Number I
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和自己又是映射,所以是对称数。<span style="font-size:14px;">public class Solution { public boolean isStrobogrammatic(String num){ if(num == null || num == "") return false; HashMap<Character><Character> map = new HashMap<><>(); map.set('1','1'); map.set('8','8'); map.set('0','0'); map.set('6','9'); map.set('9','6'); int low = 0; int high = num.length() - 1; while(low <= high){ if(!set.containsKey(num.charAt(low)) || num.charAt(low) != set.get(num.charAt(high))){ return false; } low++; high--; } return true; } }</span>