Shortest Distance to Target String in a Circular Array
You are given a 0-indexed circular string array words and a string target. A circular array means that the array's end connects to the array's beginning.
- Formally, the next element of
words[i]iswords[(i + 1) % n]and the previous element ofwords[i]iswords[(i - 1 + n) % n], wherenis the length ofwords.
Starting from startIndex, you can move to either the next word or the previous word with 1 step at a time.
Return the shortest distance needed to reach the string target. If the string target does not exist in words, return -1.
Example 1
Input
words = ["hello","i","am","leetcode","hello"], target = "hello", startIndex = 1Output
1The shortest way from index 1 to an occurrence of "hello" is moving 1 step left to index 0.
Example 2
Input
words = ["a","b","leetcode"], target = "leetcode", startIndex = 0Output
1The shortest way from index 0 to "leetcode" is moving 1 step left to index 2.
Constraints
- 1 <= words.length <= 100
- 1 <= words[i].length <= 100
- words[i] and target consist of only lowercase English letters.
- 0 <= startIndex < words.length