牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母'a'和字母'n'分别出现了三次和两次。
但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。
输入包括一个字符串s,s的长度length(1 ≤ length ≤ 1000),s中的每个字符都是小写的英文字母('a' - 'z')
输出一个字符串,表示满足牛牛要求的字符串
banana
ban
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String a = in.next();
StringBuilder sb = new StringBuilder();
int[] record = new int[26];
for(int i = 0; i < a.length(); i++){
char c = a.charAt(i);
if(record[c-97] == 0){
sb.append(c);
record[c-97] = 1;
}
}
System.out.print(sb);
}
} import java.util.*;
public class Main
{
public static void main(String [] args)
{
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
String str=sc.next();
HashMap<String,Integer> map=new HashMap<>();
StringBuilder sb=new StringBuilder();
for(int i=0;i<str.length();i++)
{
String s=""+str.charAt(i);
if(map.get(s)!=null)
{
map.put(s,map.get(s)+1);
}
else
{
sb.append(s);
map.put(s,1);
}
}
System.out.println(sb.toString());
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner (System.in);
String str=cin.next();
int a=str.length();
String s="";
String s1=String.valueOf(str.charAt(0))+s;
for(int i=1;i<a;i++) {
if(s1.contains(String.valueOf(str.charAt(i)))==true)continue;
else {
s1=s1+String.valueOf(str.charAt(i))+s;
}
}
System.out.print(s1);
}
}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String str = in.next();
char[] chs =str.toCharArray();
boolean[] az = new boolean[26];
String res = "";
int index = 0;
for(int i = 0;i<chs.length;i++){
index = chs[i] - 'a';
if(!az[index]){
res = res+chs[i];
az[index] = !az[index];
}
}
System.out.println(res);
}
} import java.util.HashSet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
StringBuilder sb = new StringBuilder();
sb.append(str);
HashSet<Character> set = new HashSet();
for (int i = 0; i < sb.length(); i++) {
if (set.contains(sb.charAt(i))) {
sb.setCharAt(i, '0');
}
set.add(sb.charAt(i));
}
System.out.println(sb.toString().replace("0", ""));
}
}
开始的思路是获取字符串里的每一个字符然后和该字符串进行匹配, 若IndexOf和LastIndexOf相等(即字符串内只有一个该字符)就删除后一个字符。 但是String里面没有删除指定下标字符的方法(其实也可以自己创建这个类..现在才想起来), 唯一能用的replaceFirst只能删除第一个出现的字符(其他都是两个删除所有指定字符),遂放弃。 现在的解题思路是用StringBuffer的append拼接字符串(数组固定长度,集合太麻烦,两者不可用) 如果字符c没在String里面出现过就拼接该字符,直到循环到String的最后一位为止。 另:判断输入是否正确用的是dowhile,即直到输入字符串长度与格式满足条件为止的循环。
private static String solution(String str) {
int[] arr = new int[26];
StringBuilder res = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
int idx = str.charAt(i) - 'a';
if (arr[idx] == 0)
res.append(str.charAt(i));
arr[idx] += 1;
}
return res.toString();
} HashSet牛逼!
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String str=in.next();
Set<String> set=new LinkedHashSet<>();
for(int i=0;i<str.length();i++)
set.add(str.substring(i,i+1));
Iterator<String> iterator=set.iterator();
while(iterator.hasNext())
System.out.print(iterator.next());
}
}
import java.util.Scanner;
import java.util.Set;
import java.util.LinkedHashSet;
public class Main{
public static void main(String[] args){
try(Scanner in = new Scanner(System.in)){
System.out.println(helper(in.nextLine()));
}
}
public static String helper(String s){
Set<Character> set = new LinkedHashSet<>();
char[] cs = s.toCharArray();
for(char c:cs){
set.add(c);
}
StringBuffer sb = new StringBuffer();
for(char c:set){
sb.append(c);
}
return sb.toString();
}
}
import java.util.*;import java.util.Scanner;public class Main {public static void main(String[] args){Scanner sc=new Scanner(System.in);String n=sc.nextLine();char[] arr=n.toCharArray();Set h=new HashSet();StringBuffer res=new StringBuffer();for(inti=0;i<arr.length;i++){char tmp=arr[i];if(h.add(tmp)){res.append(tmp);}}//String s=h.toString();System.out.println(res);}}