String Transformation - Problem
String Transformation Through Rotations

You are given two strings s and t of equal length n. Your goal is to transform string s into string t using exactly k operations.

Operation: Remove a suffix of s of length l (where 0 < l < n) and append it to the beginning of s.

Example: If s = "abcd", you can:
• Remove suffix "d""dabc"
• Remove suffix "cd""cdab"
• Remove suffix "bcd""bcda"

Challenge: Count the number of ways to transform s into t in exactly k operations. Since the answer can be very large, return it modulo 109 + 7.

Input & Output

example_1.py — Basic Transformation
$ Input: s = "abcd", t = "cdab", k = 2
Output: 1
💡 Note: One way: "abcd" → (remove "cd") → "cdab" → (remove "b") → "bcda" → (remove "bcd") → "cdab". We need exactly 2 operations, and there's exactly 1 sequence that works.
example_2.py — Multiple Paths
$ Input: s = "abc", t = "bca", k = 2
Output: 1
💡 Note: From "abc" to "bca" in 2 operations: "abc" → (remove "c") → "cab" → (remove "ab") → "bca". Only one valid path exists.
example_3.py — Impossible Case
$ Input: s = "abc", t = "def", k = 1
Output: 0
💡 Note: String t is not a rotation of string s, so no sequence of operations can transform s into t.

Visualization

Tap to expand
String Transformation as Graph Problemabcbcacabsuffix "c"suffix "ab"suffix "a"DP Approach• Model as graph• Count k-paths• Time: O(n²k)• Space: O(nk)Optimal SolutionMatrix Power• For large k values• Matrix exponentiation• Time: O(n³ log k)• More efficientAdvanced OptimizationBrute Force• Try all sequences• Recursive approach• Time: O((n-1)^k)• Exponential!Avoid This
Understanding the Visualization
1
Model as Graph
Each possible rotation of the string becomes a node in our graph
2
Define Transitions
From each node, we can reach n-1 other nodes through valid suffix operations
3
Dynamic Programming
Count paths of length exactly k from source to target using DP table
4
Optimization
For large k, use matrix exponentiation to achieve O(n³ log k) complexity
Key Takeaway
🎯 Key Insight: Transform the string rotation problem into a graph where each rotation is a state, then use dynamic programming to count exactly k-length paths from source to target state.

Time & Space Complexity

Time Complexity
⏱️
O(n² * k)

n states, each transition takes O(n), repeated k times

n
2n
Quadratic Growth
Space Complexity
O(n * k)

DP table storing ways to reach each of n states in each of k steps

n
2n
Linearithmic Space

Constraints

  • 2 ≤ n ≤ 1000
  • 1 ≤ k ≤ 1000
  • n == s.length == t.length
  • s and t consist of only lowercase English letters
Asked in
Google 42 Meta 28 Microsoft 24 Amazon 18
52.0K Views
Medium Frequency
~35 min Avg. Time
1.8K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen