使用 C++ 删除给定数字中的重复数字
在本文中,我们给定了一个数字n,我们需要删除给定数字中的重复数字。
Input: x = 12224 Output: 124 Input: x = 124422 Output: 1242 Input: x = 11332 Output: 132
在给定的问题中,我们将遍历所有数字并删除重复的数字。
寻找解决方案的方法
在给定的方法中,我们现在将从右到左遍历n的所有数字。我们通过将n的模除以10,然后将n除以10来遍历n的数字。现在我们当前的数字是nmod10。我们用前一个数字检查它。如果数字相等,我们现在遍历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和其他语言。我们希望这篇文章对您有所帮助。