题解 HJ9| #提取不重复的整数#
提取不重复的整数
https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str=in.nextLine(); int[] myarray=new int[str.length()]; //倒序 for(int i =0;i<str.length();i++){ myarray[i]=str.charAt(str.length()-i-1)-'0'; } //去重 int cout=0; for(int i =str.length()-1;i>=0;i--){ for(int j =i-1;j>=0;j--){ if(myarray[i]==myarray[j]){ for(int k=i;k<str.length()-1;k++){ myarray[k]=myarray[k+1]; } cout++; } } } //输出 for(int i=0;i<str.length()-cout;i++){ System.out.print(myarray[i]); } } }
提取不重复的整数,先把整数以字符串的方式接收,再转化为int数组形式操作
String str=in.nextLine();
int[] myarray=new int[str.length()];
从字符串到数组,正好题目需要倒序,我们就倒序来存入,从字符串最后一位往数组里存
//倒序
for(int i =0;i<str.length();i++){
myarray[i]=str.charAt(str.length()-i-1)-'0';//字符串里的字符不能直接存,转化的是字符ascll码,所以要-‘0’,减去0的ascall码
}
题目要求不能有重复的,所以我们再通过一一比较去把重复的去掉(实际为从那个位置开始,每一个都等于后一个来去除),从后往前,再设置一个计数器,计算有多少个重复的数字
int cout=0;
for(int i =str.length()-1;i>=0;i--){
for(int j =i-1;j>=0;j--){
if(myarray[i]==myarray[j]){
for(int k=i;k<str.length()-1;k++){
myarray[k]=myarray[k+1];
}
cout++;
}
}
}
最后输出,从前往后输出总数-重复数字数的个数的数字即可
for(int i=0;i<str.length()-cout;i++){
System.out.print(myarray[i]);
}
#华为od题库#随便发发而已