输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是 0 。 数据范围:
区块链毕设网qklbishe.com为您提供问题的解答
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; }
利用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); } } }
#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; }
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;
}
}
}
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,,,,,
//利用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); } } } }
自认为比较简洁的方法
#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; } }
//用一个哈希表计数即可,配合取模和除法运算 #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; } }
num=raw_input("").strip() ch="" num=reversed(num) for i in num: if i not in ch: ch+=i print int(ch)
#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; }
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(); } }
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); } } }
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); } } }
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)); } } }
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); } }
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)
#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; }
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
#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; }
以上就是关于问题输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是 0 。
数据范围:的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训