输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是 0 。 数据范围:

区块链毕设网qklbishe.com为您提供问题的解答

输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围: 输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。    保证输入的整数最后一位不是 0 。            数据范围:

a = str(input())[::-1] print ''.join(sorted(set(a),key=a.index))
// Or in C++ #include <bits/stdc++.h>  using namespace std;  constexpr int MAXN = 10; bitset<MAXN> vis;  int main() {     ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);     string s;     cin >> s;     for_each(s.crbegin(), s.crend(), [](const char &ch) {         if (!vis[ch - '0']) {             cout << ch;             vis[ch - '0'] = true;         }     });     return 0; }

编辑于 2020-10-14 08:46:23
利用set不包含重复元素实现 import java.util.LinkedHashSet; import java.util.Scanner; import java.util.Set;    public class Main { 	 	public static void main(String[] args) { 		Scanner sc = new Scanner(System.in); 		 		while(sc.hasNext()){ 			String str = sc.nextLine(); 			char[] nums = str.toCharArray(); 			Set<Character> st = new LinkedHashSet<Character>(); 			for (int i = nums.length -1; i >= 0; i--) { 				 				st.add(nums[i]); 			} 			String result = ""; 			for (Character c : st) { 				result += c + ""; 			} 			System.out.println(result); 		} 			 	}  } 

54:12
#include <iostream> #include <string> using namespace std; int main() {  	int m, i; 	int a[10] = {0}; 	string str; 	getline(cin, str); 	m = str.size(); 	for (i = m - 1; i >= 0; i--) 	{ 		if (a[str[i] - '0'] == 0) 		{ 			cout << str[i]; 			a[str[i] - '0']++; 		} 	} 	return 0; }

20:11

#include<iostream>

using namespace std;
int main()
{
    int a;
    while(cin>>a)
    {
        int Lab[10]={0};
        while(a)
            {
                int b=a%10;
                if(Lab[b]==0)
                    {
                        Lab[b]=1;
                        cout<<b;
                     }
                a/=10;
            }
    }
}

编辑于 2016-09-08 16:38:33
import java.util.*; public class Main{     public static void main(String[] args){         Scanner in=new Scanner(System.in);         while(in.hasNext()){             String str=in.next();             String a=str.substring(str.length()-1);             for(int i=str.length()-2;i>=0;i--){                     if(!a.contains(str.substring(i,i+1)))                          a+=str.substring(i,i+1);             }             System.out.println(a);         }        } }感觉就用简单暴力解决,,不需要什么set,,,,,

58:03
//利用Set不重复的特点 是LinkedhashSet保证顺序 import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Scanner; import java.util.Set;  //提取不重复整数 public class Main {  	public static void main(String[] args) { 		Scanner in = new Scanner(System.in); 		while(in.hasNext()){ 			String inStr = in.nextLine(); 			char[] chars = inStr.toCharArray(); 			Set<Character> set = new LinkedHashSet<Character>(); 			 			for (int i = chars.length-1; i >=0 ; i--) { 				set.add(chars[i]); 			} 			Iterator<Character> iterator = set.iterator(); 			while (iterator.hasNext()) { 				Character c = (Character) iterator.next(); 				System.out.print(c); 			} 			 			 		} 	}  }  

27:14

自认为比较简洁的方法

#include #include using namespace std; int main(){     string s;     while(cin>>s){         int ha[10] = {0};         string tmp;         for(int i=s.size()-1; i >= 0; i--)             if(!ha[s[i] - '0']) {ha[s[i] - '0'] = 1; tmp.push_back(s[i]);}         cout<<tmp<<endl;     } }

编辑于 2019-03-27 17:09:23
//用一个哈希表计数即可,配合取模和除法运算 #include<iostream> using namespace std; int main(){     int m;     while(cin>>m){         int tab[10]={0};         while(m){             tab[m%10]++;             if(tab[m%10]==1)                 cout<<m%10;             m/=10;         }         cout<<endl;     } }

56:45
num=raw_input("").strip()  ch="" num=reversed(num) for i in num:     if i not in ch:         ch+=i print int(ch) 
上面是Python写的代码
下面是C++的代码
#include<iostream>
using namespace std;
int main()
{
int inputnum;
int mod;
int ret = 0;
int arr[10] = { 0 };
cin >> inputnum;
if (inputnum < 0)
return -1;
while (inputnum)
{
mod = inputnum % 10;
inputnum /= 10;
if (arr[mod] == 0)
{
ret = ret * 10 + mod;
arr[mod] = 1;
}
}
cout << ret << endl;
system("pause");
return 0;
}

思路就是用数组标记某个数字是否出现过

编辑于 2016-07-03 21:50:20
双端队列充当优先队列

#include <iostream> #include <deque> #include <algorithm>  using namespace std;  int  main() { 	int input; 	while (cin >> input) 	{ 		deque<int> Out_set; 		while (input) 		{ 			int tmp = input % 10; 			input = input / 10; 			if (find(Out_set.begin(),Out_set.end(),tmp)==Out_set.end()) 				Out_set.push_back(tmp); 		} 		int ret = 0; 		for (deque<int>::iterator it = Out_set.begin(); it != Out_set.end(); it++) 		{ 			//cout << *it << " "; 			ret = (*it) +ret * 10; 		} 			 		cout << ret << endl; 	 	} 	 	//system("pause"); 	return 0;  }

44:57

import java.util.*; public class Main{     public static void main(String[] args) 		{         Scanner in=new Scanner(System.in);         String str=in.next();         LinkedHashSet<String> set=new LinkedHashSet<String>();         for(int i=str.length()-1;i>=0;i--)             set.add(str.substring(i,i+1));         for(String s:set)             System.out.print(s);         System.out.println();     } }

51:08
import java.util.Scanner; import java.util.LinkedHashSet; import java.util.Iterator;  public class Main {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int input = sc.nextInt();         LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();         while (input != 0) {             set.add(input % 10);             input /= 10;         }         Iterator it = set.iterator();         while(it.hasNext()) {             Object value = it.next();             System.out.print(value);         }     } }

32:00

纯纯偷换概念()
import java.util.*;  public class Main {     public static void main(String[] args){         Scanner s = new Scanner(System.in);         // list用来存最后结果         ArrayList<Character> list = new ArrayList<>();         // 把输入的数字转化为字符数组储存         char[] input = s.nextLine().toCharArray();         // 从数组最后一位开始遍历, 检查list中是否存在, 若不存在则插入到尾部         for (int i = input.length-1; i >= 0; i--) {             if (!list.contains(input[i])){                 list.add(input[i]);             }         }         // 遍历输出         for (Character character : list) {             System.out.print(character);         }     } }

50:16

import java.io.InputStream; import java.util.ArrayList; import java.util.*; public class Main {     public static void main(String[] args) throws Exception {         //InputStream in = System.in;         Scanner scanner = new Scanner(System.in);         char[] toArr = scanner.nextLine().toCharArray();         ArrayList<Character> arrayList = new ArrayList<>();         for(int i = toArr.length - 1;i >= 0;i--){             if(!arrayList.contains(toArr[i])){                 arrayList.add(toArr[i]);             }         }         for(int j = 0;j < arrayList.size();j++){             System.out.print(arrayList.get(j));         }     } }

31:30

import java.util.*;  public class Main{ 	 	public static void newNum(int num) { 		List<Integer> numList = new ArrayList<>(); 		if(num==0) {        //这里用来判断输入的数据是否为0,如果为0,直接输出0; 			System.out.println(0); 		} 		while(num>0) {      //如果不是0,则通过取余(10)操作不断提取所输入整数的最后一位,然后通过除法运算(10)右移更新末尾一位 			if(numList.contains(num%10)) { 				num /= 10; 			}else { 				numList.add(num%10);//如果这末尾位是第一次出现,则将其存入ArrayList,否则,更新末尾位。 			} 		} 		//最后增强for循环直接将ArrayList中的数打印出来 		for(int lastNum:numList) { 			System.out.print(lastNum); 		} 	} 	public static void main(String[] args) { 		Scanner in = new Scanner(System.in); 		int num = in.nextInt(); 		newNum(num); 	} }  

46:15

a = str(int(input()))
b = 1
c = ""

if a[len(a)-1] == "0":
    exit()

for i in range(1,len(a)+1):
    b = a[-i]
    if b not in c:
        c = c + b
print(c)

01:14

#include<iostream> using namespace std;  int main() {     int integer;     int num=0;     cin>>integer;     int a[10]={0};//数字作为数组下标数字范围为0-9,共10个     while(integer)     {         if(a[integer%10]==0)         {             a[integer%10]++;             num=num*10+integer%10;         }         integer/=10;     }     cout<<num<<endl;     return 0; } 

02:14

while True:
    try:
        a = input()
        a = a[::-1]
        b = []
        s = ”
        for j in a:
            if j not in b:
                b.append(j)
                s += j
        print(s)
    except:
        break

38:13
一开始打算用set存储输入数据取余的结果,可以达到去重的效果,但是set会自动排序,故使用一个10个单位大小的数组记录取余结果出现的次数,若为0则输出,代码如下:
#include <iostream>
using namespace std;
int main()
{
int input_data;
while (cin>>input_data)
{
        int count_array[10] = {0};
while(input_data)
{
count_array[input_data % 10]++;
if (count_array[input_data % 10]==1)
{
cout<<input_data%10;
}
input_data /= 10;
}
                cout<<endl;
}
return 0;
}

23:30
#include<iostream> using namespace std; int main() {     int n;     int a[10]={0};     int num=0;     cin>>n ;     while(n)     {         if(a[n%10]==0)         {             a[n%10]++;//这一步是更新,遇到下次相同的数会跳过             num=num*10+n%10;         }         n/=10;     }          cout<<num<<endl;          return 0; }

21:56

以上就是关于问题输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是 0 。

数据范围:的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是 0 。 数据范围: