使用 C++ 删除给定数字中的重复数字

在本文中,我们给定了一个数字 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 和其他语言。我们希望这篇文章对您有所帮助。