【编程】完成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(); }