貪心專練2 最小字典序排序POJ3617

2021-08-13 19:20:00 字數 590 閱讀 6539

題目大意:給定長度為n的字串s,要構造乙個長度為n的字串t。起初,t是乙個空串,隨後反覆進行下列任意操作。

從s的頭部刪除乙個字元,加到t的尾部

從s的尾部刪除乙個字元,加到t的尾部

目標是構造字典序盡可能小的字串。

input:    6     acdbcb

output:   abcbcd

思路:最優規則 1.不斷比較s的頭部和尾部(頭+i與尾-i)把小的放在t尾部 ,然後改變起始位置或者結束位置(改變頭尾因為刪掉了)

2.若頭尾相同則不斷比較下乙個,一直比較至不同的地方,把比較小的一端頭放於t尾部

3.若一直比較至最後都相同則輸出哪個都行。

**:#include #define maxn 2001

char s[maxn];

int n;

void solve()

{ int a=0,b=n-1;//起始位置

while(a<=b)//總迴圈條件

{int flag=0,i;

for(i=0;a+i<=b-i;i++)//相等一直比較下去而a b不變//每個位置字元比較迴圈

{if(s[a+i]

nowcoder 拼接最小字典序

對於乙個給定的字串陣列,請找到一種拼接順序,使所有小字串拼接成的大字串是所有可能的拼接中字典序最小的。給定乙個字串陣列strs,同時給定它的大小,請返回拼接成的串。測試樣例 abc de 2 abcde 定義比較函式st r1 s tr2 st r2 s tr1 然後自定義快排。class prio...

字串拼接最小字典序

對於乙個給定的字串陣列,請找到一種拼接順序,使所有小字串拼接成的大字串是所有可能的拼接中字典序最小的。給定乙個字串陣列 strs,同時給定它的大小,請返回拼接成的串。貪心策略1 直接字串排序最後拼接起來 b ba 排序的結果就是 b ba 直接連線是bba,但是實際上是bab更小 貪心策略2 定義乙...

貪心 字典序最小問題

貪心 字典序最小問題 題目大意 給你乙個長為n的字串s,並提供下列2種操作 讓你構造出字典序最小的字串t 思路 因為每次我們能直接考慮的只有s的首尾字母,所以每次新增到t中的不是第乙個就是最後那乙個,沒有別的方法,並且都是新增到t的末尾 根據字典序的定義,越靠前的字母越小,則字典序越小,所以我們每次...