summaryrefslogtreecommitdiff
path: root/content/string/lyndon.cpp
blob: cb477d4bb61fd36b21623b2d53eae20afa2ad101 (plain)
1
2
3
4
5
6
7
8
9
10
11
bool next(string& s, int maxLen, char mi = '0', char ma = '1') {
	for (int i = ssize(s), j = ssize(s); i < maxLen; i++)
		s.push_back(s[i % j]);
	while(!s.empty() && s.back() == ma) s.pop_back();
	if (s.empty()) {
		s = mi;
		return false;
	} else {
		s.back()++;
		return true;
}}