【编程】完成rejetRepeatedChars函数,从给定的字符串中剔除连续字符,只保留一个,比如aaabbbcdc,处理完之后返回abcdc。
private static String rejetRepeatedChars(String str) { if (str == null || str.trim().length() == 0) return null; char temp = str.charAt(0); StringBuilder sb = new StringBuilder(temp + ""); for (int i = 1, n = str.length(); i < n; i++) { if (temp != str.charAt(i)) { temp = str.charAt(i); sb.append(temp); } } return sb.toString(); }
object = 'aaabbbcdc' target = "" alpha = "" for i in object: if alpha != i: alpha = i target += alpha
public class Test { public String rejetRepeatedChars(String s) { List data = new ArrayList(); for (int i=0;i<s.length();i++){ String str=s.substring(i,i+1); if (!data.contains(str)){ data.add(str); } } String result = ""; for (String ss : data) { result += ss; } return result; } public static void main(String[] args) { Test mTest = new Test(); String str = mTest.rejetRepeatedChars("aaabbbcdcefffeed"); System.out.print(str); } }
public class StringDel { public static void main(String[] args) { String s1 = "aaabbbcdc"; rejetRepeatedChars(s1); String s2 = "absdfffa"; rejetRepeatedChars(s2); String s3 = "abcdefg"; rejetRepeatedChars(s3); } public static void rejetRepeatedChars(String str) { char chars[] = str.toCharArray(); char charsResult[] = new char[str.length()]; int k = 0; char temp = chars[0]; charsResult[k] = temp; k++; for (int i = 1; i < chars.length; i++) { if (temp != chars[i]) { temp = chars[i]; charsResult[k] = temp; k++; } } String result = new String(charsResult); if (result.indexOf('\u0000') != -1) { result = result.substring(0,result.indexOf('\u0000')); } System.out.println("原字符串:\n" + str); System.out.println("剔除连续字符后:\n" + result); System.out.println("-----------------"); } }
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
//完成rejetRepeatedChars函数,从给定的字符串中剔除连续字符,
//只保留一个,比如aaabbbcdc,处理完之后返回abcdc
public class Test2 {
public String rejetRepeatedChars(String s){
Map<String,String> hm=new HashMap<>();
String temp;
StringBuilder sb=new StringBuilder();
for(int i=0;i<s.length();i++){
temp=s.substring(i,i+1);
if(!hm.containsKey(temp)){
hm.put(temp, temp);
}
}
//HashMap遍历
//法1:推荐
/*for(Entry<String,String> entry:hm.entrySet()){
sb.append(entry.getValue());
}*/
//法2:推荐
Iterator<Entry<String,String>> it=hm.entrySet().iterator();
while(it.hasNext()){
Entry<String,String> entry=it.next();
sb.append(entry.getValue());
}
//法3:最慢
/*for(String key:hm.keySet()){
sb.append(hm.get(key));
}*/
return sb.toString();
}
public static void main(String[] args){
Test2 t=new Test2();
System.out.print(t.rejetRepeatedChars("abbbbccccccd"));
}
}
#include <iostream> #include <string> //#include <vector> using namespace std; int main() { string InputStr,OutputStr; cin>>InputStr; int lenIn=InputStr.length(); int i; int flag = 0; OutputStr.push_back(InputStr[0]); for(i = 1; i <lenIn; i++) { if(InputStr[i] == InputStr[i-1]) { flag = 1; } else flag = 0; if(flag==0) { OutputStr.push_back(InputStr[i]); } } for (int i = 0; i<=OutputStr.size() - 1; i++) { cout << OutputStr[i] ; } return 0; }
import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Set; public class Main { public String rejetRepeatedChars(String s){ char a[]=s.toCharArray(); Set set=new LinkedHashSet(); for(int i=0;i<a.length;i++){ String j=String.valueOf(a[i]); set.add(j); } Iterator<String>it=set.iterator(); StringBuilder sb=new StringBuilder(); while(it.hasNext()){ sb.append(it.next()); } return sb.toString(); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Main m=new Main(); String ss=m.rejetRepeatedChars("aaabbbcdc"); System.out.print(ss); } }
public static String rejetRepeatedChars(String in) { if (in == null || in.trim().equals("")) return in; final char[] chars = in.toCharArray(); char last = chars[0]; StringBuilder sb = new StringBuilder(); sb.append(chars[0]); for (char c : chars) { if (last != c) sb.append(c); last = c; } return sb.toString(); }