Delete Digits(删除数字)

Delete Digits

public class Solution {
    /*
     * @param A: A positive integer which has N digits, A is a string
     * @param l: Remove k digits
     * @return: A string
     */
    public String DeleteDigits(String A, int l) {
        // write your code here
        //使用StringBuilder来提升速度
        StringBuilder sb = new StringBuilder(A);
        int delete = 0;
        while (delete < l) {
            //循环删除l个元素。
            for (int i = 0; i < sb.length() - 1; i++) {
                //找到前边大的直接删除
                if (sb.charAt(i) > sb.charAt(i + 1)) {
                    sb.deleteCharAt(i);
                    break;
                }
                //一直找不到删除最后一个
                if (i == sb.length() - 2) {
                    sb.deleteCharAt(sb.length() - 1);
                }
            }
            delete++;
        }
        //去掉开头的0
        while (sb.length() > 1 && sb.charAt(0) == '0') {
            sb.deleteCharAt(0);
        }
        return sb.toString();
    }
}

你可能感兴趣的:(Delete Digits(删除数字))