递归剔除字符创中的逗号
上次去科大国创面试,第一道算法题就是递归算法,可怜知识贫瘠,没搞定。
String str = "e,g,h,j,k,k,j,h,";
递归剔除字符串中的逗号;
[解决办法]
/**
* 删除一个字符串中的逗号
*
* @param data
* 源字符串
* @return 被删除逗号的字符串
*/
public static String deleteComma(String data) {
for (int i = 0; i < data.length(); i++) {
if (data.substring(i, i+1).equals(",")) {
//找到第一个逗号,该豆号之前的东西肯定没有逗号,之后的字符串执行删除方法,再连接起来返回
return data.substring(0, i) + deleteComma(data.substring(i + 1));
}
}
return data;
}
刚刚写的
主方法是这样的
public static void main(String[] args) {
String str = "a,b,ccc,e33,3";
System.out.println(deleteComma(str));
}
[解决办法]
写一个方法,返回字符串:
public static String rmvStr(String str){
if(str.length()==1) return ",".equals(str)?"":str;
String first = str.substring(0, 1);
first = ",".equals(first)?"":first;
return first+rmvStr(str.substring(1));
}
[解决办法]
static String removeComma(String s){
if(s.indexOf(",") == -1) return s;
return removeComma(s.replaceFirst(",",""));
}[解决办法]
+