[LeetCode246] 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.

Hide Company Tags Google
Hide Tags Hash Table Math
Hide Similar Problems (M) Strobogrammatic Number II (H) Strobogrammatic Number III

根据题目描述可知有这么几个digits是符合要求的:0, 1, 6, 9, 8

class Solution {
public:
    bool isStrobogrammatic(string num) {
        unordered_map<char, char> mp = {{'8','8'},{'1','1'},{'0','0'},{'6','9'},{'9','6'}};
        int n = num.size();
        for (int i = n-1, j = 0; i>=0 && j <= i; ++j, --i) {
            if(mp.find(num[i]) == mp.end() || mp[num[i]] != num[j]) return false;
        }
        return true;
    }
};

你可能感兴趣的:(LeetCode)