Given two strings, check if it is possible to make the first string from the second by deleting some characters from the second string and rearranging the remaining characters.
Examples:
Input : s1 = BOBthebuilder
: s2 = fBoOkBIHnfndBthesibuishlider
Output : Possible
Input : s1 = Hello
: s2 = dnaKfhelddf
Output : Not Possible
Approach:
1. Count each character in both strings
- We use Pythonâs Counter from the collections module.
- Counter(str1) gives a dictionary-like object showing how many times each character appears in str1.
- Similarly, Counter(str2) counts characters in str2.
2. Compare character counts
- For each character in str1, we check if str2 has that character in equal or greater quantity.
- Example:
- If str1 needs 2 'A's, then str2 must have at least 2 'A's.
- If even one character from str1 is missing or appears fewer times in str2, then the answer is âNot Possible.â
3. Decide the result
- If all characters in str1 are found in sufficient quantity in str2, print âPossible.â
- Otherwise, print âNot Possible.â
Implementation:
from collections import Counter
s1 = 'BOBthebuilder'
s2 = 'fBoOkBIHnfndBthesibuishlider'
# Count characters in both strings
count1 = Counter(s1)
count2 = Counter(s2)
# Check if all characters of str1 are present in str2
possible = True
for ch in count1:
if count1[ch] > count2[ch]:
possible = False
break
if possible:
print("Possible")
else:
print("Not Possible")
Output
Possible
Explanation:
- We use Counter to count how many times each character appears.
- Then we check, one by one, if str2 has enough of each character.
- If any character is missing or fewer, it prints âNot Possibleâ.
- Otherwise, it prints âPossibleâ.