LeetCode—402. Remove K Digits

1255 단어 leetcode
Binary Watch 사고방식: 욕심 알고리즘은 원래 쓴 것이 귀착이고 창고가 넘쳐서 순환으로 바뀌었다.
GitHub 주소:https://github.com/corpsepiges/leetcode
여기 들어오시면 스타를 눌러주세요. 감사합니다.
public class Solution {
    public String removeKdigits(String num, int k) {
        if (num.length()==k) {
            return "0";
        }
        int first=0;
        while (k>0) {
            int index=num.length()-1;
            for (int i = first; i < num.length()-1; i++) {
                if (num.charAt(i)>num.charAt(i+1)) {
                    index=i;
                    break;
                }
            }
            if (index==num.length()-1) {
                num=num.substring(0,num.length()-k);
                k=0;
            }else{
                num=num.substring(0,index)+num.substring(index+1, num.length());
                k--;
                if (index>0) {
                    first=index-1;
                }else{
                    first=0;
                }
            }
        }
        int zero=0;
        for (int i = 0; i < num.length()-1; i++) {
            if (num.charAt(i)!='0') {
                zero=i;
                break;
            }
        }
        return num.substring(zero,num.length());
    }
}

좋은 웹페이지 즐겨찾기