字符串- 244. 删除字符

2020-05-31 17:37:47

问题描述:

给定一个字符串str,现在要对该字符串进行删除操作,保留字符串中的k个字符且相对位置不变,并且使它的字典序最小,返回这个子串。

样例

例1:

输入:str="fskacsbi",k=2
输出:"ab"
解释:“ab“是str中长度为2并且字典序最小的子串

例2:

输入:str="fsakbacsi",k=3
输出:"aac"

问题求解:

按区间去寻找最小值即可。

    public String deleteChar(String str, int k) {
        StringBuffer sb = new StringBuffer();
        int start = 0;
        while (sb.length() < k) {
            char c = str.charAt(start);
            int next = start;
            for (int i = start + 1; i <= str.length() - (k - sb.length()); i++) {
                if (str.charAt(i) < c) {
                    c = str.charAt(i);
                    next = i;
                }
            }
            sb.append(c);
            start = next + 1;
        }
        return sb.toString();
    }

  

 

posted @ 2020-05-31 17:40  hyserendipity  阅读(581)  评论(0编辑  收藏  举报