在本文中,我们给定了一个数字 n,我们需要删除给定数字中的重复数字。
Input: x = 12224 Output: 124 Input: x = 124422 Output: 1242 Input: x = 11332 Output: 132
在给定的问题中,我们将遍历所有数字并删除重复的数字。
在给定的方法中,我们现在将从右到左遍历 n 的所有数字。我们通过将 n 的模除以 10,然后将 n 除以 10 来遍历 n 的数字。现在我们当前的数字是 n mod 10。我们用前一个数字检查它。如果数字相等,我们现在遍历 n。如果它们不相似,我们将这个数字添加到我们的新数字中,将前一个数字更改为当前数字,然后继续循环。
#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; int main() { int n = 1222333232; // 给定 n int new_n = 0; // 新号码 int po = 1; // 将是新数字的十的倍数 int prev = -1; // 前一位 int curr; // 当前数字 while(n) { curr = n % 10; if(prev != curr) { // 如果一个数字不重复,那么我们进入这个块 new_n = new_n + (curr * po); // 我们向 new_n 添加一个新数字 po *= 10; prev = curr; } n /= 10; } cout << new_n << "\n"; return 0; }输出结果
123232
在上面的方法中,当我们的前一个数字和当前数字不匹配时,我们现在只是遍历 n 的数字,我们将这个数字添加到我们的新数字中,并且随着我们的数字添加,我们也增加了 po,即如果我们的当前数字和前一个数字匹配,现在用于我们数字的位置 - 我们不运行此块并继续循环直到我们的 n 变为 0。
在本文中,我们解决了删除给定数字中重复数字的问题。我们还学习了针对此问题的 C++ 程序以及解决此问题的完整方法 (Normal)。我们可以用其他语言编写相同的程序,例如 C、java、python 和其他语言。我们希望这篇文章对您有所帮助。