Medium
Lexicographically Smallest String After Substring Operation — C++
Full explanation · Time O(n) · Space O(1)
// Time: O(n)
// Space: O(1)
// greedy
class Solution {
public:
string smallestString(string s) {
int i = 0;
for (; i < size(s); ++i) {
if (s[i] != 'a') {
break;
}
}
if (i == size(s)) {
s.back() = 'z';
} else {
for (; i < size(s); ++i) {
if (s[i] == 'a') {
break;
}
--s[i];
}
}
return s;
}
};