移除 K 位得到最小值

2021-09-27 07:03:53 字數 724 閱讀 7144

有一行由 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...