Strobogrammatic Number -- Leetcode 246
来源:互联网 发布:太空工程师 编程 编辑:程序博客网 时间:2024/05/01 22:56
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.
只要知道什么是strobogrammatic数, 这道题并不难。翻转180度对称的数字就那么几个:0->0, 1->1, 6->9, 8->8, 9->6,然后从两边向中间逐个比较对应位置的数字是否有映射关系。如果这个数包含有奇数个数字,中间那个只能是 0、1、8,不能是6和9。非常straightforward的C++ 实现如下。
class Solution {public: bool isStrobogrammatic(string nums){ int start = 0, end = nums.length() - 1;
while (start != end) { if ((nums[start] == 1 && nums[end] == 1) || (nums[start] == 8 && nums[end] == 8) ||
(nums[start] ==6 && nums[end] == 9) ||
(nums[start] == 9 && nums[end] == 6) ) { ++start; --end; } else { return false; } } if (start == end) { if ((nums[start] == '0') || (nums[start] == '1') || (nums[start] == '8')) return true; else return false; } }};
比上面代码更简洁的方法是建立一个查询表, 代码如下。
class Solution {public: bool isStrobogrammatic(string nums) {unordered_map<char, char> mapping;mapping['0'] = '0';mapping['1'] = '1';mapping['6'] = '9';mapping['8'] = '8';mapping['9'] = '6';int start = 0, end = nums.length() - 1;while (start <= end){ if ((mapping.find(nums[start]) == mapping.end()) ||
(mapping.find(nums[end]) == mapping.end()) ||
(mapping[nums[start]] != nums[end]))
return false;
++start; --end;}return true; }};
0 0
- [leetcode 246] Strobogrammatic Number
- Strobogrammatic Number -- Leetcode 246
- Leetcode NO.246 Strobogrammatic Number
- Leetcode: Strobogrammatic Number
- *LeetCode-Strobogrammatic Number
- Leetcode-246.Strobogrammatic Number
- LeetCode 246. Strobogrammatic Number
- LeetCode 246. Strobogrammatic Number
- leetcode Strobogrammatic Number III
- Leetcode 246. Strobogrammatic Number
- LeetCode 题解(238) : Strobogrammatic Number
- LeetCode 247. Strobogrammatic Number II
- LeetCode 248. Strobogrammatic Number III
- LeetCode 247. Strobogrammatic Number II
- LeetCode 题解(239) : Strobogrammatic Number II
- LeetCode 题解(240) : Strobogrammatic Number III
- [leetcode] 246. Strobogrammatic Number 解题报告
- [leetcode] 247. Strobogrammatic Number II 解题报告
- alias python=python3
- Android数据存储方式—SQLite
- Leetcode 152. Maximum Product Subarray
- Python轻松入门-11 continue语句
- 欢迎使用CSDN-markdown编辑器
- Strobogrammatic Number -- Leetcode 246
- Android初级问题总结
- Java 每天学习一点点之运算符
- 设置QListView中的QScrollBar样式表
- c++ queue 和 deque
- Treap模板(第K大,插入删除查找)
- 第19天(就业班) BeanUtils组件用法及类型转换器、DbUtils组件、jdbc优化
- Leetcode 153. Find Minimum in Rotated Sorted Array
- (十二)分割窗口