首页 > 试题广场 >

【编程】完成rejetRepeatedChars函数,从给定

[问答题]

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

发表于 2017-09-10 12:11:15 回复(0)
function rejetRepeatedChars(str){
    return str.replace(/(.)\1+/gi,"$1");
}
var str = rejetRepeatedChars('aaabbbccdc');
console.log(str);
发表于 2017-08-18 18:34:46 回复(3)
object = 'aaabbbcdc'
target = ""
alpha = ""
for i in object:
    if alpha != i:
        alpha = i
       target += alpha

发表于 2017-11-07 10:47:30 回复(1)
function rejetRepeatedChars(str){
      var arr = str.split('');
      var arr2 = [];
      arr2.push(arr[0]);
      for(var i = 1; i < arr.length; i++) {
        if(arr2[arr2.length-1] !== arr[i]){
          arr2.push(arr[i]);
        }
      }
      console.log(arr2.join(''));
    }
    rejetRepeatedChars('aaabbbccdc')
发表于 2017-08-18 13:19:52 回复(2)
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);
    }
}

编辑于 2017-08-19 16:53:21 回复(7)
 for (int i=0;i<s.length()-1;i++){
            String str1=s.substring(i,i+1); 
            String str2=s.substring(i+1,i+2); 
               if(i==0) data.add(str1);
               if (!(str1.equals(str2))){
                data.add(str2);
                }
        }
//前后两个字符对比,不相同则添加。题目不是过滤相同。
发表于 2017-08-22 19:36:16 回复(2)
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("-----------------");
	}
}

编辑于 2017-09-13 01:07:27 回复(1)

[...new Set(str.split(‘’))].join(‘’)

发表于 2018-11-08 22:32:19 回复(0)
rawstr=input("Please input a string,:\n")  #返回一个没有重复字符的字符串
rejetRepeatedChars=[rawstr[0],]
for x in range(1,len(rawstr)):
    if rawstr[x]!=rawstr[x-1]:
        rejetRepeatedChars.append(rawstr[x])
print("".join(rejetRepeatedChars))

发表于 2017-12-06 21:55:47 回复(0)
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"));
    }

}
发表于 2017-09-06 13:41:41 回复(0)
#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;
}


发表于 2017-08-30 16:08:21 回复(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);	
		
	}

}


发表于 2017-08-18 22:33:12 回复(3)
def RejetReChar(str): result = [str[0]] prev = str[0] for i in str[1:]: if i != prev: result.append(i) prev = i return "".join(result)
发表于 2019-03-08 14:09:08 回复(0)
function rejectRepeatedChars(str) { let arr = new Set(str); str = [...arr]; str = str.join(); return str; } str = "bbbcccddadsfddss" console.log(rejectRepeatedChars(str));
发表于 2018-09-04 21:18:23 回复(0)
def rejetRepeatedChars(): a = input("输入一串字符串") a = list(a) i = 1 while i < len(a): if a[i - 1] == a[i]: a[i - 1] = '' i += 1 print(''.join(a)) if __name__ == '__main__': rejetRepeatedChars()
发表于 2018-08-06 20:01:44 回复(0)
a = input('请输入字符串aaaaa:')
L= list(a)
M=[] for i in range(len(L)-1):  if L[i] !=L[i+1]:
          M.append(L[i])  if i == len(L)-2:  if L[i] != L[i+1]:
             M.append(L[i+1])
s = ''.join(M) print(s)

编辑于 2018-07-08 16:27:04 回复(0)
public static void main(String[] args){ String str="aaabbbcdd"; String str1=str.replaceAll("(.)\\1+","$1"); System.out.println(str1); }
发表于 2018-06-05 15:04:42 回复(0)
def rejetRepeatedChars(x): s=""+x[0] for i in x[1:]: if s[-1]!=i: s+=i return s
编辑于 2018-05-20 00:18:35 回复(0)
这。。。难道是传说中的set()
发表于 2018-01-17 15:18:53 回复(1)

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();
}


编辑于 2017-12-23 21:00:59 回复(0)