LC: 249. Group Shifted Strings
https://leetcode.com/problems/group-shifted-strings/
249. Group Shifted Strings
We can shift a string by shifting each of its letters to its successive letter.
For example,
"abc"can be shifted to be"bcd".
We can keep shifting the string to form a sequence.
For example, we can keep shifting
"abc"to form the sequence:"abc" -> "bcd" -> ... -> "xyz".
Given an array of strings strings, group all strings[i] that belong to the same shifting sequence. You may return the answer in any order.
Example 1:
Input: strings = ["abc","bcd","acef","xyz","az","ba","a","z"]
Output: [["acef"],["a","z"],["abc","bcd","xyz"],["az","ba"]]Example 2:
Input: strings = ["a"]
Output: [["a"]]Constraints:
1 <= strings.length <= 2001 <= strings[i].length <= 50strings[i]consists of lowercase English letters.
The Essence:
Die verschobenen (shifted) Strings sind miteinander dadurch verwandt, dass die Abstände zwischen den Zeichen in einem String gleich zu den Abständen in dem anderen sind. “ace” ist verwandt mit “dfh”, weil alle aufeinanderfolgenden Zeichen den gleichen Abstand haben.
Details:
Man kann für jeden String einen Schlüssel-String annehmen, der mit ‘a’ anfängt, so dass verwandte Strings immer dem gleichen Schlüssel entsprechen (z.B. “prt” => “ace”). Da Abstände manchmal negativ sein können, ist es wichtig, mit Modulo 26 zu arbeiten.
Solution:
Default Code:
Last updated