給出乙個字串a,表示乙個n位正整數,刪除其中k位數字,使得剩餘的數字仍然按照原來的順序排列產生乙個新的正整數,使得這個新的正整數盡可能小。n<=240,k<=n。
樣例:a=178542,k=4,返回字串「12」。
思路:每次對當前最高位進行選擇,在可選範圍內選最小的值。這裡的可選範圍指:例如a=90249,k=2,newlen=3,res.size()=0,則最高位搜尋範圍:902,即0~a.size()-(newlen-res.size()),每次更新a和res。
string deletedigits(string &a, int k)
}res.push_back(min);
a=a.substr(pos+1,a.size()-1);
}while(res[0]=='0')
res=res.substr(1,res.size());//去除最後前面多餘的0,有的不止乙個。
return res;
}
lintcode 182 刪除數字
給出乙個字串 a,表示乙個 n 位正整數,刪除其中 k 位數字,使得剩餘的數字仍然按照原來的順序排列產生乙個新的正整數。找到刪除 k 個數字之後的最小正整數。n 240,k n 樣例給出乙個字串代表的正整數 a 和乙個整數 k,其中 a 178542,k 4 返回乙個字串 12 標籤思路 使用回溯和...
三次過 Lintcode 182 刪除數字
給出乙個字串 a,表示乙個 n 位正整數,刪除其中 k 位數字,使得剩餘的數字仍然按照原來的順序排列產生乙個新的正整數。找到刪除 k 個數字之後的最小正整數。n 240,k n 給出乙個字串代表的正整數 a 和乙個整數 k,其中a 178542,k 4 返回乙個字串 12 注意刪除數字的思路,一開始...
LintCode 刪除數字
題目 給出乙個字串 a,表示乙個 n 位正整數,刪除其中 k 位數字,使得剩餘的數字仍然按照原來的順序排列產生乙個新的正整數。找到刪除 k 個數字之後的最小正整數。n 240,k n 樣例 給出乙個字串代表的正整數 a 和乙個整數 k,其中 a 178542,k 4 返回乙個字串 12 思路 為了得...