小葱又想到了一个问题,如果一个数字旋转了180°后,能得到一个新的数字(与原来不同),那么这样的数字被小葱称为眩晕数。的c++代码题解
时间: 2024-05-15 15:16:22 浏览: 80
以下是一个判断一个数字是否为眩晕数的C++代码:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
bool isStrobogrammatic(string num) {
unordered_map<char, char> mp{{'0', '0'}, {'1', '1'}, {'6', '9'}, {'8', '8'}, {'9', '6'}};
int n = num.size(), l = 0, r = n - 1;
while (l <= r) {
if (!mp.count(num[l]) || !mp.count(num[r]) || mp[num[l]] != num[r]) {
return false;
}
++l;
--r;
}
return true;
}
int main() {
string num;
cin >> num;
if (isStrobogrammatic(num)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
该代码利用了哈希表存储数字的旋转对应关系,然后从字符串的两端开始向中间遍历,同时判断对应位置的数字是否为旋转后的数字,如果不是则返回false,最后如果能够遍历到中间位置则说明该数字为眩晕数,返回true。
阅读全文