java+递归查找每一最大的字典序字母

最大子序列

http://www.nowcoder.com/questionTerminal/17ba5b5df1fc49ca8d6cf8ea407b1972

本题使用递归可以求解,每一次找出字典序最大的字母,,再从当前位置进行,再从index+1继续递归处理到字符串末尾即可
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
        String str;
        while((str=reader.readLine())!=null){
            StringBuffer sb=new StringBuffer();
            dfs(sb,0,str,str.charAt(0));
            System.out.println(new String(sb));
        }
    }
    public static void dfs(StringBuffer sb,int index,String str,char c){
        for (int i = index+1; i <str.length() ; i++) {
             if(str.charAt(i)>c){
                 c=str.charAt(i);
                 index=i;
             }
        }
        sb.append(c);
        if(index<str.length()-1)
                dfs(sb,index+1,str,str.charAt(index+1));
    }
}
全部评论

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
尊尼获获:闺蜜在哪?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务