Сегодня мой 61-й день кодинга. я решил 2 задачи

Проблема 1: повернуть строку

Имея две строки s и goal, вернуть true в том и только в том случае, если s может стать goal после некоторого количества сдвигов на s.

Сдвиг на s состоит в перемещении самого левого символа s в крайнее правое положение.

  • Например, если s = "abcde", то через одну смену будет "bcdea".

Пример 1:

Input: s = "abcde", goal = "cdeab"
Output: true

Пример 2:

Input: s = "abcde", goal = "abced"
Output: false

Ограничения:

  • 1 <= s.length, goal.length <= 100
  • s и goal состоят из строчных английских букв.

Решение (в Java):

class Solution {
    public boolean rotateString(String s, String goal) {
        
        Queue<Character> q1= new LinkedList<>();
        Queue<Character> q2 = new LinkedList<>();

        for(int i=0; i<s.length(); i++)
        q1.add(s.charAt(i));

        for(int i=0; i<goal.length(); i++)
        q2.add(goal.charAt(i));

        int k=goal.length();
        while(k>0){
            char ch=q2.peek();
            q2.remove();
            q2.add(ch);
            if(q2.equals(q1))
            return true;

            k--;
        }
        return false;
    }
}

Задача 2: перетасовать строку

Вам задана строка s и массив целых чисел indices одинаковой длины. Строка s будет перемешана таким образом, что символ в позиции ith переместится на indices[i] в перемешанной строке.

Вернуть перетасованную строку.

Пример 1:

Input: s = "codeleet", indices = [4,5,6,7,0,2,1,3]
Output: "leetcode"
Explanation: As shown, "codeleet" becomes "leetcode" after shuffling.

Пример 2:

Input: s = "abc", indices = [0,1,2]
Output: "abc"
Explanation: After shuffling, each character remains in its position.

Ограничения:

  • s.length == indices.length == n
  • 1 <= n <= 100
  • s состоит только из строчных английских букв.
  • 0 <= indices[i] < n
  • Все значения indices являются уникальными.

Решение (в Java):

class Solution {
    public String restoreString(String s, int[] indices) {


           Map< Integer , Character> hm= new HashMap<>();
        String S="";
        for( int i=0; i<s.length(); i++)
        hm.put( indices[i], s.charAt(i));

        for(int i=0; i<s.length(); i++)
        S+=hm.get(i);

        return S;
    }
}