вчера был мой 60-й день кодирования. Я решил 2 вопроса.
Проблема 1: Перевернуть строку.
Напишите функцию, которая переворачивает строку. Входная строка задается как массив символов s
.
Вы должны сделать это, изменив входной массив на месте с O(1)
дополнительной памятью.
Пример 1:
Input: s = ["h","e","l","l","o"] Output: ["o","l","l","e","h"]
Пример 2:
Input: s = ["H","a","n","n","a","h"] Output: ["h","a","n","n","a","H"]
Решение (в Java):
class Solution { public void reverseString(char[] s) { int i=0, j=s.length-1; while(i<j){ char temp=s[i]; s[i]=s[j]; s[j]=temp; i++; j--; } } }
Задача 2: Строка-палиндром
Имея строку S, проверьте, является ли она палиндромом или нет.
Пример 1:
Input: S = "abba" Output: 1 Explanation: S is a palindrome
Пример 2:
Input: S = "abc" Output: 0 Explanation: S is not a palindrome
Ваша задача
Вам не нужно ничего читать или печатать. Завершите функцию isPalindrome(), которая принимает строку S и возвращает целочисленное значение 1 или 0.
Ожидаемая временная сложность:O(длина S)
Ожидаемое вспомогательное пространство:O(1)
Решение (в Java):
class Solution { int isPalindrome(String S) { // code here String rev=""; for(int i=S.length()-1; i>=0; i--) rev+=S.charAt(i); if(S.equals(rev)) return 1; return 0; } };