输入一个字符串,求出该字符串包含的字符集合,按照字母输入的顺序输出。
数据范围:输入的字符串长度满足 1≤n≤100 1 \le n \le 100 \ 1≤n≤100 ,且只包含大小写字母,区分大小写。
本题有多组输入
输入:
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。
输出:
每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。
首先这个题的输入的是只有字母的大小写的字母组成的字符串。按顺序输出不重复的元素。
做题思想:
首先,我们的的每个字母都有相对于的int类型的数组。我们只要遍历这个字符串,找到每个字符所得值,在同时,如果这个字符所对应的数组的值是0那么就代表没有重复,那么就将这个字符加到另外一个引用变量,然后再讲这个字符对应的数组的值++,这样如果后面有重复的字母,每次会找到这个数组,发现不是0,那么就不会再将其加入到string引用中。这样我们就可以解题了。
import java.util.Scanner;
public class Main {
public static StringBuilder func(String str){
int[] ch = new int[257];
StringBuilder set = new StringBuilder("");
int tem;
for(int i = 0;i<str.length();i++){
tem = str.charAt(i);
if(ch[tem]==0){
set.append(str.charAt(i));
ch[tem]++;
}
}
return set;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
StringBuilder set = func(str);
System.out.println(set.toString());
}
}
链接:字符集合__牛客网 来源:牛客网
|