246. Strobogrammatic Number_HashMap<>()

Given a string num which represents an integer, return true if num is a strobogrammatic number.

strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside down).

Example One:

Input: num = "69"
Output: true



Example Two:

Input: num = "88"
Output: true


Example Three:

Input: num = "962"
Output: false

Solutions:

class Solution {
    public boolean isStrobogrammatic(String num) {
       
        Map<Character, Character> map = Map.of('1','1','0','0','6','9','9','6','8','8');
        StringBuilder  str = new StringBuilder();

        int len = num.length();
        char c = 0;
        for(int i = len -1; i >= 0; i--){
            c = num.charAt(i);
            if(!map.containsKey(c)) return false;
            else str.append(map.get(c));
        }
        String result = str.toString();
        return result.equals(num);
        

    }
}

Hints:

Logics:

  • Hava a HashMap to restore the character that a strobogrammatic number
  • The characters of '9' and '6' are the special ones
  • Have a String Builder that will store the characters that are rotated 180 degrees
  • compare the result with num

Tips:

  • Set up the HashMap: Map<Character, Character> map = Map.of('1','1','0','0','6','9','9','6','8','8'); instead of using map.put() method
  • use str.toString() to convert the char to string
  • use .equals() method to compare the result
  • return the boolean result
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值