部分文字列の辞書順最小

貪欲に見ていくが前計算を行い工夫して計算量を削減する。

006 - Smallest Subsequence(★5)

https://drken1215.hatenablog.com/entry/2021/10/10/195200

下記の条件式で悩んだので備忘録として

if(n-kk >= k-i){
	//k-iは残り何文字必要か
	//n-kkは今見てるカーソルおいてる所から後ろに何文字あるか
	//n-kk < k-iだと今見てる所から全部とっても文字数足りないからこうしてる
	res += c;
	j=kk;
	break;
}

() の判定

1.文字列を前から見ていき ( があったらstackにpushする。

2.文字列に)があったらstackを(が見つかるまでpopする。

3.stack内に(が残っていたり、2をしている途中にstackが空になったら整合性が取れていない。