有一行由 n 個數字組成的數字字串,字串所表示的數是一正整數。移除字串中的 k 個數字,使剩下的數字是所有可能中最小的。
假設: 字串的長度一定大於等於 k
字串不會以 0 開頭
輸入
一行由 n 個數字組成的數字字串(0 < n < 20),和乙個正整數 k(k < n),兩個資料由空格隔開,如:1432219 3。
輸出
移除 k 位後可能的最小的數字字串。 如 1432219 移除 4, 3, 2 這 3 個數字後得到 1219,為所有可能中的最小值。
重複k次 :
1.找到並且刪除第乙個 num[i] > num[i + 1] 的第i位數字。
2.若刪除過程中,序列變成遞增序列,則直接刪除最後一位。
注意除去字串頭的0
#include
#include
using namespace std;
int main()
if (red == 1) //說明str為公升序排列,則直接刪除最後一位。
}else
i++;
} }}i = str.size();
while(i--) //注意除去字串頭的0
}if (str.size() == 0)
cout << str;
小公尺oj 9 移除 K 位得到最小值
題目 ac python3 如下 import sys for line in sys.stdin line line.strip num,k line.split k int k for i in range k for j in range 9,1,1 if str j in num t num...
小公尺OJ 9 移除 K 位得到最小值
思路 重複k次 1.找到並且刪除第乙個 num i num i 1 的第i位數字。2.若刪除過程中,序列變成遞增序列,則直接刪除最後一位。注意除去字串頭的0 def solution line num,k line.split for j in range 0,int k flag true for...
同時得到最大最小值的最優演算法
首先,我們將一對輸入元素進行比較,然後把較小的值與最小值比較,較大值與最大值比較。這樣,每兩個元素共需3次比較。如果n是奇數,就把最大最小值的初值都設為第乙個元素的值,然後成對處理剩下的元素 如果n是偶數,則先比較前兩個元素,決定最大最小值的初值,然後成對處理剩下的元素。include stdafx...