同构数c++
时间: 2023-07-01 15:19:10 浏览: 246
同构数是指两个数在同一位置上的数字相同,例如11和121就是同构数。以下是一个简单的C++代码实现同构数的判断:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isIsomorphic(string s, string t) {
if (s.size() != t.size()) return false;
int n = s.size();
int map1[128] = {0}, map2[128] = {0};
for (int i = 0; i < n; i++) {
if (map1[s[i]] != map2[t[i]]) return false;
map1[s[i]] = i + 1;
map2[t[i]] = i + 1;
}
return true;
}
int main() {
string s1 = "11", s2 = "121";
if (isIsomorphic(s1, s2)) {
cout << s1 << " and " << s2 << " are Isomorphic numbers." << endl;
} else {
cout << s1 << " and " << s2 << " are not Isomorphic numbers." << endl;
}
return 0;
}
```
该代码中使用了两个数组map1和map2,通过记录每个数字首次出现的位置来判断是否同构。如果两个数中有一位数字与另一个数对应位置的数字不同,则它们不是同构数。
阅读全文