題目大意:
給定長度為n的字串s,要構造乙個長度為n的字串t。構造方法為:
.從s頭部刪除乙個字元,加到t的尾部
.從s尾部刪除乙個字元,加到t的尾部
解題思路:
是一道貪心的水題,但也有值得學習的地方。程式設計技巧上,使用的方法比較獨特,每次都要搜尋一次,時間複雜度會高一點,但這道題怎麼寫肯定都不會超時,所以下面這種寫法簡單邏輯清晰。
#include#include#includeusing namespace std;
char s[3000];
int n,st,ed;
void solve()
} if(l) printf("%c",s[st++]);
else printf("%c",s[ed--]);
} printf("\n");
}int main()
solve();
} return 0;
}
字典序最小問題(POJ3617)
題目大意 給定長度為n的字串s,要構造乙個長度為n的字串t。起初,t是乙個空串,隨後反覆進行下列任意操作。從s的頭部刪除乙個字元,加到t的尾部 從s的尾部刪除乙個字元,加到t的尾部 目標是構造字典序盡可能小的字串。輸入 6 acdbcb 輸出abcbcd 解題思路 這道題我們很容易想到,不斷取開頭或...
poj 3617字典序最小 貪心
思路 定義乙個標記位left 表示是否輸出的左邊的字元 逐個比較首尾 0與n比 1與n 1比較 2與n 2比較.每當滿足比較條件 即兩個字元不相同,一大一小 就給標記位標記上,最後根據標記位的值進行輸出,切記每行滿80字元要換行 pe所在 ac include include include inc...
貪心專練2 最小字典序排序POJ3617
題目大意 給定長度為n的字串s,要構造乙個長度為n的字串t。起初,t是乙個空串,隨後反覆進行下列任意操作。從s的頭部刪除乙個字元,加到t的尾部 從s的尾部刪除乙個字元,加到t的尾部 目標是構造字典序盡可能小的字串。input 6 acdbcb output abcbcd 思路 最優規則 1.不斷比較...