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

  • 相关阅读:
    python 多个变量赋值
    python标准数据类型
    Python 变量类型
    H3C 扩展ACL与基于时间的ACL
    H3C BGP-filter-policy
    H3C 标准ACL
    H3C BGP实验集合
    H3C IS-IS实验大集合(ipv6)
    H3C ISIS实验大集合(IPv4)
    JS 封装一个显示时间的函数
  • 原文地址:https://www.cnblogs.com/lz87/p/6999145.html
Copyright © 2011-2022 走看看