首页 > 其他 > 详细

[LintCode] Mirror Numbers

时间:2017-06-17 09:19:27      阅读:204      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!