ChatGPT, диалоговый ИИ от OpenAI, выпущенный в ноябре 2022 года, может понять и ответить практически на все, что вы спросите. У него есть возможность писать стихи, штамповать эссе и писать исследовательские работы за считанные секунды.
С момента его выпуска некоторые университеты начали запрещать этот инструмент искусственного интеллекта, чтобы предотвратить мошенничество и плагиат.
После того, как он показал себя замечательно в написании эссе, может ли ChatGPT также решать вопросы программирования?
В этой статье я выбрал пять вопросов по программированию в LeetCode, популярной платформе для практики программирования, и попросил ChatGPT решить их за меня.
- Две суммы
- Обратное целое
- Самые длинные допустимые скобки
- Число палиндрома
- Первый недостающий положительный результат
Вот результаты.
Задача № 1: две суммы
(Сложность: простая) Учитывая массив целых чиселnums
и целоеtarget
, верните индексы двух чисел так, чтобы в сумме они составлялиtarget
.
Вы можете предположить, что каждый ввод будет иметь ровно одно решение, и вы не можете использовать один и тот же элемент дважды.
Вы можете вернуть ответ в любом порядке.
Пример:
Input: nums = [2,7,11,15], target = 9 Output: [0,1] Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Ограничения:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
- Существует только один правильный ответ
Я скопировал весь вопрос вместе с примерами и ограничениями и вставил их в ChatGPT, и вот ответ.
Я прогнал его через LeetCode, и бум! Это было принято как правильное решение.
Проблема № 2: обратное целое число
(Сложность: средняя) Получив 32-битное целоеx
со знаком, вернитеx
с перевернутыми цифрами. Если обращение x
приводит к тому, что значение выходит за пределы диапазона 32-битных целых чисел со знаком [-231, 231 - 1]
, возвращается 0
.
Предположим, что среда не позволяет хранить 64-битные целые числа (со знаком или без знака).
Примеры:
Input: x = 123 Output: 321 Input: x = -123 Output: -321 Input: x = 120 Output: 21
На этот раз я попросил ChatGPT решить проблему на C++. Вот решение, которое оно мне дало.
И снова это было принято. Потрясающий!
Теперь давайте зададим более сложный вопрос.
Проблема № 3: самые длинные скобки
(Трудность: сложная) Для строки, содержащей только символы '('
и ')'
, вернуть длину самых длинных допустимых (правильных) скобок.
Примеры:
Input: s = "(()" Output: 2 Explanation: The longest valid parentheses substring is "()". Input: s = ")()())" Output: 4 Explanation: The longest valid parentheses substring is "()()". Input: s = "" Output: 0
Я попросил ChatGPT дать решение на C.
К сожалению, программа завершилась со следующей ошибкой:
Он терпит неудачу, когда ввод пуст.
ChatGPT также может отлаживать код для вас.
Просто скопируйте фрагмент кода и скажите ИИ исправить код в тех случаях, когда ввод пуст.
ИИ не только даст вам правильный код, но и объяснит, в чем проблема, и покажет правильный способ ее решения.
Это невероятно полезно для программистов.
Подумайте о том, чтобы проводить экспертную оценку и отладку с помощником ИИ вместо вашего вспыльчивого коллеги.
И да, новый ответ был принят на LeetCode.
Задача № 4: Число палиндрома
(Сложность: легкая) Учитывая целое число x
, вернуть true
, еслиx
является палиндромом, иfalse
в противном случае.
Примеры:
Input: x = 121 Output: true Explanation: 121 reads as 121 from left to right and from right to left. Input: x = -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome. Input: x = 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
На этот раз я попросил ИИ дать мне решения на Python, C++ и C#.
Давайте посмотрим, сможет ли он получить правильные ответы на всех языках.
Решение на Python
Ответ был принят.
Решение на C
Решение было отклонено из-за ошибки целочисленного переполнения.
Решение на C++
Ответ был правильным и принятым.
Проблема № 5: первый пропущенный положительный результат
(Сложность: сложно) Учитывая массив несортированных целых чисел nums
, вернуть наименьшее отсутствующее положительное целое число.
Вы должны реализовать алгоритм, который работает за O(n)
времени и постоянно использует дополнительное пространство.
Примеры:
Input: nums = [1,2,0] Output: 3 Explanation: The numbers in the range [1,2] are all in the array. Input: nums = [3,4,-1,1] Output: 2 Explanation: 1 is in the array but 2 is missing. Input: nums = [7,8,9,11,12] Output: 1 Explanation: The smallest positive integer 1 is missing.
Решение и объяснение ChatGPT:
И снова ответ был принят.
Последние мысли
В целом ИИ смог решить все пять задач. ChatGPT — это, по сути, программист с искусственным интеллектом, дающий программистам возможность решать сложные вопросы программирования.
Но, как я только что убедился, ChatGPT может делать гораздо больше, чем просто решать проблемы. Он также может предоставить объяснения для каждого найденного решения. Это помогает кодерам лучше понять основную логику и структуру их решений, что может быть неоценимо для того, чтобы стать лучшим программистом.
Это начало конца для StackOverflow?
Что вы думаете?
Будьте в курсе последних новостей и обновлений в сфере творческого ИИ — следите за публикацией Генеративный ИИ.
Пожалуйста, поддержите мою работу на Medium напрямую и получите неограниченный доступ, став участником по моей реферальной ссылкездесь. Хорошего дня!