
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
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
Check If Final String Can Be Formed Using Two Strings in Python
Suppose we have two strings s, t, and another string r we have to check whether there is any way to get r by merging characters in order from s and t.
So, if the input is like s = "xyz" t = "mno" r = "xymnoz", then the output will be True, as xymnoz can be formed by interleaving xyz and mno.
To solve this, we will follow these steps −
Define a function solve() . This will take s, t, r
-
if s, t and r are empty, then
-
return True
-
if r is empty, then
return False
-
-
-
if s is empty, then
return true when t is same as r, otherwise false
-
if not t is non−zero, then
return s is same as r
-
if s[0] is same as r[0], then
-
if solve(s[from index 1 to end], t, r[from index 1 to end]) is true, then
return True
-
-
if t[0] is same as r[0], then
-
if solve(s, t[from index 1 to end], r[from index 1 to end]) is true, then
return True
-
return False
Let us see the following implementation to get better understanding −
Example
class Solution: def solve(self, s, t, r): if not s and not t and not r: return True if not r: return False if not s: return t == r if not t: return s == r if s[0] == r[0]: if self.solve(s[1:], t, r[1:]): return True if t[0] == r[0]: if self.solve(s, t[1:], r[1:]): return True return False ob = Solution() s = "xyz" t = "mno" r = "xymnoz" print(ob.solve(s, t, r))
Input
"xyz", "mno", "xymnoz"
Output
True