Вопрос в том, чтобы напечатать лексикографически наименьшую строку. Пожалуйста, взгляните на мой подходC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Вопрос в том, чтобы напечатать лексикографически наименьшую строку. Пожалуйста, взгляните на мой подход

Сообщение Anonymous »

Вам дана строка s и робот, который в данный момент содержит пустую строку t. Применяйте одну из следующих операций до тех пор, пока s и t не станут пустыми:
  • Удалите первый символ строки s и передайте его роботу. Робот добавит этот символ к строке t.
  • Удалите последний символ строки t и передайте его роботу. Робот напишет этот символ на бумаге.
Вернет лексикографически наименьшую строку, которую можно записать на бумаге.
Это вопрос из литкода. Извините за публикацию вопроса, но я думаю, что почти решил этот вопрос и просто потерял один балл за идеальный ответ.
это мой подход. Проблема, с которой я столкнулся, заключается в том, что во втором тестовом примере, входные данные которого - «bac», он печатает только «ab» вместо «abc», проходя два других случая. Любой может дать мне совет.

Код: Выделить всё

class Solution {
public:
char smallest(string s) {
char smallest = s[0];
for (int i = 1; i < s.length(); i++) {
smallest = min(smallest, s[i]);
}
return smallest;
}
string robotWithString(string s) {
stack myst;
string p = "";
myst.push(s[0]);
for (int i = 1; i < s.length(); i++) {
if (myst.empty()) {
myst.push(s[i]);
} else if (smallest(s.substr(i)) 

Подробнее здесь: [url]https://stackoverflow.com/questions/79799346/the-question-is-to-print-the-lexicographically-smallest-string-please-have-a-lo[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»