- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

Suppose we have two strings s and t, we have to check whether s can be converted to t in k moves or less. In ith move you can do these operations.

Select any index j (starting from 1) in s, such that 1 <= j <= size of s and j has not been selected in any previous move, and shift the character at that index i number of times.

Remain as it is.

Here shifting a character means replacing it by the next letter in the alphabet (if letter is 'z', then wrap it to 'a'). So shifting a character by i times indicates applying the shift operations i times.

So, if the input is like s = "poput" t = "vwput" k = 9, then the output will be True because at i = 6, we can convert 'p' to 'v', and at i = 8, we can convert 'o' to 'w'.

To solve this, we will follow these steps:

if size of s is not same as size of t, then

return False

count := an array holding (minimum of 1 and (k - i + 1 +(k - i)/26)) for all i from 0 to 25

for each character c1 from s and c2 from t, do

if c1 is not same as c2, then

diff :=(ASCII of c2 - ASCII of c1 + 26) mod 26

if count[diff] <= 0, then

return False

count[diff] := count[diff] - 1

return True

Let us see the following implementation to get better understanding

def solve(s, t, k): if len(s) != len(t): return False count = [min(1, k - i + 1) + (k - i)//26 for i in range(26)] for c1, c2 in zip(s, t): if (c1 != c2): diff = (ord(c2) - ord(c1) + 26) % 26 if count[diff] <= 0: return False count[diff] -= 1 return True s = "poput" t = "vwput" k = 9 print(solve(s, t,k))

"poput","vwput",9

True

- Related Questions & Answers
- Program to check whether we can make k palindromes from given string characters or not in Python?
- Python program to check whether we can pile up cubes or not
- Program to check whether we can take all courses or not in Python
- Program to check whether we can unlock all rooms or not in python
- Program to check whether one string swap can make strings equal or not using Python
- Program to check whether we can get N queens solution or not in Python
- Program to check whether final string can be formed using other two strings or not in Python
- Python Program to Check Whether a String is a Palindrome or not Using Recursion
- Program to check whether we can split list into consecutive increasing sublists or not in Python
- Python program to check whether a given string is Heterogram or not
- How to Check Whether a String is Palindrome or Not using Python?
- Program to check whether two string arrays are equivalent or not in Python
- Program to check whether Amal can win stone game or not in Python
- Program to check whether all can get a seat or not in Python
- Program to check whether palindrome can be formed after deleting at most k characters or not in python

Advertisements