/* * 246.Strobogrammatic Number * 2016-6-18 by Mingyang * 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. * 我开始做没想到用hashmap,这么会使代码非常简单 */ public boolean isStrobogrammatic(String num) { HashMap<Character, Character> map = new HashMap<Character, Character>(); map.put('1','1'); map.put('0','0'); map.put('6','9'); map.put('9','6'); map.put('8','8'); int left = 0, right = num.length() - 1; while(left <= right){ // 如果字母不存在映射或映射不对,则返回假 if(!map.containsKey(num.charAt(right)) || num.charAt(left) != map.get(num.charAt(right))){ return false; } left++; right--; } return true; }