码迷,mamicode.com
首页 > 其他好文 > 详细

[LintCode] Mirror Numbers

时间:2017-06-17 10:13:55      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:store   res   --   color   als   hashmap   number   map   char   

A mirror 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 mirror. The number is represented as a string.

Example

For example, the numbers "69", "88", and "818" are all mirror numbers.
Given num = "69" return true
Given num = "68" return false

 

The allowed mapping is:

6 -> 9 

9 -> 6

0 -> 0

1 -> 1

8 -> 8

 

Use a hash map to store the above mapping and go through the input string. If a character has no mappings or 

its mapped character is not the same with the character at its symmetric right side , return false.

 

 1 public class Solution {
 2     public boolean isStrobogrammatic(String num) {
 3         Map<Character, Character> map = new HashMap<Character, Character>();
 4         map.put(‘6‘, ‘9‘);
 5         map.put(‘9‘, ‘6‘);
 6         map.put(‘0‘, ‘0‘);
 7         map.put(‘1‘, ‘1‘);
 8         map.put(‘8‘, ‘8‘);
 9         int left = 0, right = num.length() - 1;
10         while (left <= right) {
11             if (!map.containsKey(num.charAt(left))) {
12                 return false;
13             }
14             if (map.get(num.charAt(left)) != num.charAt(right)) {
15                 return false;
16             }
17             left++;
18             right--;
19         }
20         return true;
21     }
22 }

 

 

[LintCode] Mirror Numbers

标签:store   res   --   color   als   hashmap   number   map   char   

原文地址:http://www.cnblogs.com/lz87/p/6999145.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!