Совсем новичок в программировании. Пробовал несколько простых проектов в LeetCode и терпел неудачу... Ха! Я пытаюсь взять целое число и преобразовать его в строку, чтобы можно было перевернуть его, а затем повторно преобразовать перевернутую строку обратно в целое число.
Этот код выдает команду «завершить после выбрасывание и экземпляр ошибки «std::invalid аргумент» What(): Stoi. Я потратил час на поиск в Google и других вопросов здесь, на SO, но не могу понять, почему это не работает.
bool isPalindrome(int x) {
std::string backwards ="";
std::string NumString = std::to_string(x);
for (int i = NumString.size(); i >= 0 ; i--) {
backwards += NumString;
}
int check = std::stoi(backwards);
if (check == x) {
return true;
}
else {
return false;
}
}
РЕДАКТИРОВАТЬ: Я думаю, что понял. Он добавлял нулевой символ в конец строки при первом преобразовании, а затем добавлял его в начало строки, когда я ее переворачивал. Пробелы нельзя преобразовать в целые числа.
Итак... Я изменил эту строку, и она работает:
for (int i = NumString.size() - 1; i >= 0 ; i--)
Подробнее здесь: https://stackoverflow.com/questions/712 ... ument-in-c