LC: 1427. Perform String Shifts
1427. Perform String Shifts
You are given a string s containing lowercase English letters, and a matrix shift, where shift[i] = [directioni, amounti]:
directionican be0(for left shift) or1(for right shift).amountiis the amount by which stringsis to be shifted.A left shift by 1 means remove the first character of
sand append it to the end.Similarly, a right shift by 1 means remove the last character of
sand add it to the beginning.
Return the final string after all operations.
Example 1:
Input: s = "abc", shift = [[0,1],[1,2]]
Output: "cab"
Explanation:
[0,1] means shift to left by 1. "abc" -> "bca"
[1,2] means shift to right by 2. "bca" -> "cab"Example 2:
Input: s = "abcdefg", shift = [[1,1],[1,1],[0,2],[1,3]]
Output: "efgabcd"
Explanation:
[1,1] means shift to right by 1. "abcdefg" -> "gabcdef"
[1,1] means shift to right by 1. "gabcdef" -> "fgabcde"
[0,2] means shift to left by 2. "fgabcde" -> "abcdefg"
[1,3] means shift to right by 3. "abcdefg" -> "efgabcd"Constraints:
1 <= s.length <= 100sonly contains lower case English letters.1 <= shift.length <= 100shift[i].length == 2directioniis either0or1.0 <= amounti <= 100
The Essence:
Wir können zwei verschiedene Verschiebungen in derselben Richtung als eine vereinigte Verschiebung annehmen, genau wie Vektoren in der Physik. Wir können also einfach ihre Betragswerte summieren.
Wir können annehmen, dass sich zwei verschiedene Verschiebungen in entgegengesetzten Richtungen gegenseitig den Betrag aufheben können. Das ist wieder wie Vektoren, die in unterschiedlichen Richtungen zeigen.
Details:
Nachdem wir die Summe der Verschiebungen gefunden haben, können wir den String durch eingebaute Methode wie “substring” in Java verschieben.
Solution(s):
Default Code:
Last updated