使用 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和其他语言。我们希望这篇文章对您有所帮助。