lintcode-删除数字-182

给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。

找到删除 k 个数字之后的最小正整数。

N <= 240, k <= N


样例

给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542, k = 4

返回一个字符串 "12"

class Solution {
public:
  
    string DeleteDigits(string A, int k) {
        string ret;
        if(A.empty())
            return ret;
        ret=A;    
        while(k--){
            int i=0;
            while(i<ret.length()-1&&ret[i]<=ret[i+1])
                ++i;
            ret=ret.substr(0,i)+ret.substr(i+1);    
        }
        int i;
        for(i=0;ret[i]=='0';++i);
        ret=ret.substr(i);
        return ret;
    }
};


你可能感兴趣的:(lintcode-删除数字-182)