вчера был мой 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;
    }
};