zoukankan      html  css  js  c++  java
  • [LintCode] Mirror Numbers

    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 }

    Related Problems

    [LeetCode]Strobogrammatic Number II

    [LeetCode]Strobogrammatic Number III

  • 相关阅读:
    C#泛型
    Chrome 中调试Javascript
    Oracle分页查询语句
    WordCount2.2
    第一周博客作业
    WordCount--统计输入文件的字符数、行数、单词数(java)--初级功能
    PHP数据库操作
    PHP安全函数
    PHP基础
    用户/目录操作
  • 原文地址:https://www.cnblogs.com/lz87/p/6999145.html
Copyright © 2011-2022 走看看