zoukankan      html  css  js  c++  java
  • Leetcode: Strobogrammatic Number

    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.

    Related to confusing number

    O(N) time and O(N) space

     1 public class Solution {
     2     public boolean isStrobogrammatic(String num) {
     3         if (num==null || num.length()==0) return false;
     4         StringBuffer buf = new StringBuffer();
     5         for (int i=0; i<num.length(); i++) {
     6             char c = num.charAt(i);
     7             if (c!='0' && c!='1' && c!='6' && c!= '8' && c!= '9') return false;
     8             else if (c=='0' || c=='1' || c=='8') buf.insert(0, c);
     9             else if (c == '6') buf.insert(0, '9');
    10             else if (c == '9') buf.insert(0, '6');
    11         }
    12         return buf.toString().equals(num);
    13     }
    14 }

     O(N) time and O(1) space, use two pointers

     1 public class Solution {
     2     public boolean isStrobogrammatic(String num) {
     3         HashMap<Character, Character> map = new HashMap<Character, Character>();
     4         map.put('1','1');
     5         map.put('0','0');
     6         map.put('6','9');
     7         map.put('9','6');
     8         map.put('8','8');
     9         int left = 0, right = num.length() - 1;
    10         while(left <= right){
    11             // 如果字母不存在映射或映射不对,则返回假
    12             if(!map.containsKey(num.charAt(right)) || num.charAt(left) != map.get(num.charAt(right))){
    13                 return false;
    14             }
    15             left++;
    16             right--;
    17         }
    18         return true;
    19     }
    20 }
  • 相关阅读:
    斯坦福机器学习实现与分析之二(线性回归)
    理解Kalman滤波的使用
    浅谈程序优化
    2014年,我学到了什么
    运动目标跟踪中kalman滤波器的使用
    图像水波纹特效原理分析和实现
    Redis与memached的区别
    Freemarker讲解
    Java基础知识总结
    Java中GC的工作原理
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/5062385.html
Copyright © 2011-2022 走看看