Re: [閒聊] 每日leetcode

作者: JIWP (JIWP)   2025-06-06 22:48:44
2434. Using a Robot to Print the Lexicographically Smallest String
題目 :
給你兩個字串s、t,t是一個空的字串
請遵從以下規則使s、t都變成空字串
(1) 移除s的第一個char,並將這個char加到t的最後面
(2) 移除t的最後一個char,並將這個char寫到紙上
請回傳寫在紙上按照字母序排列最小的字串
思路 :
如果i後面還有char比s[i]還小,那就只能把s[i]丟到t而不能把s[i]寫到紙上
反之如果i後面沒有char比t最後面的chat還小,那就把t最後的char寫到紙上
用一個array紀錄排在i之後最小的char
開始遍歷s,直到處理完s的最後一個char
再來把t裡面剩下的所有char寫到紙上
就可以得到答案了
C++
class Solution {
public:
string robotWithString(string s)
{
int n = s.size();
vector<char> minCharAfter(n);
string t, ans;
minCharAfter[n - 1] = s[n - 1];
for (int i = n - 2; i > -1; i

Links booklink

Contact Us: admin [ a t ] ucptt.com