java string 去掉重复_java – 以递归方式从String中删除重复的字符

我需要帮助来确定如何从字符串中删除重复字符.它必须以递归方式完成,这才是真正的问题.

public class FEQ2 {

/**

* @param args

*/

public static void removeDups(String s, int firstChar, int secondChar) {

if (s.length() == 1) {

System.out.println(s);

}

char a = s.charAt(firstChar);

if (a == s.charAt(secondChar)) {

s = a + s.substring(secondChar + 1);

}

System.out.println(s);

removeDups(s, firstChar + 1, secondChar + 1);

//return s;

}

public static void main(String[] args) {

//System.out.println(removeDups("AAAABBARRRCC", 1));

removeDups("AAAABBARRRCC", 0 , 1);

}

}

解决方法:

你可以这样做:

public static String removeDups(String s)

{

if ( s.length() <= 1 ) return s;

if( s.substring(1,2).equals(s.substring(0,1)) ) return removeDups(s.substring(1));

else return s.substring(0,1) + removeDups(s.substring(1));

}

INPUT: "AAAABBARRRCC"

OUTPUT: "ABARC"

===============

编辑:另一种方式

public static String removeDups(String s)

{

if ( s.length() <= 1 ) return s;

if( s.substring(1).contains(s.substring(0,1)) ) return removeDups(s.substring(1));

else return s.substring(0,1) + removeDups(s.substring(1));

}

INPUT: "AAAABBARRRCC"

OUTPUT: "BARC"

==============

编辑:第三种方式

public static String removeDups(String s)

{

if ( s.length() <= 1 ) return s;

if( s.substring(0,s.length()-1).contains(s.substring(s.length()-1,s.length())) ) return removeDups(s.substring(0,s.length()-1));

else return removeDups(s.substring(0,s.length()-1)) + s.substring(s.length()-1,s.length());

}

INPUT: "AAAABBARRRCC"

OUTPUT: "ABRC"

标签:java

来源: https://codeday.me/bug/20190531/1187478.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值