मान लीजिए हमारे पास लंबाई 2 की एक स्ट्रिंग s है, और लंबाई 2 के शब्दों की एक सूची w है। हमें यह जांचना है कि क्या हम w से शब्दों को जोड़कर (concatenate) एक स्ट्रिंग बना सकते हैं जिसमें s सबस्ट्रिंग के रूप में मौजूद हो।
उदाहरण के लिए, यदि इनपुट s = "no", w = ["ol", "on", "ni", "to"] है, तो आउटपुट True होगा क्योंकि हम "onol" जैसे स्ट्रिंग जोड़ सकते हैं जिसमें "no" मौजूद है।
समाधान दृष्टिकोण
दो-अक्षर की स्ट्रिंग s किसी संयोजन में सबस्ट्रिंग के रूप में तभी मौजूद हो सकती है जब:
sसीधेwमें मौजूद हो, याs[0]किसी शब्द के दूसरे अक्षर के बराबर हो औरs[1]किसी (शायद वही) शब्द के पहले अक्षर के बराबर हो
एल्गोरिदम चरण:
- प्रत्येक शब्द
w[i]के लिए: - यदि
w[i] == s, तो True लौटाएं - यदि
s[0] == w[i][1], तोchar_0 = True - यदि
s[1] == w[i][0], तोchar_1 = True - यदि
char_0औरchar_1दोनों True हैं, तो True लौटाएं - False लौटाएं
पायथन कार्यान्वयन
def solve(s, w):
n = len(w)
char_0 = False
char_1 = False
for i in range(n):
if w[i] == s:
return True
if s[0] == w[i][1]:
char_0 = True
if s[1] == w[i][0]:
char_1 = True
if char_0 and char_1:
return True
return False
s = "no"
w = ["ol", "on", "ni", "to"]
print(solve(s, w)) # True
इनपुट
"no", ["ol", "on", "ni", "to"]
आउटपुट
True
व्याख्या:
s = "no" के लिए:
"on"का दूसरा अक्षर 'n' है →char_0 = True"ol"का पहला अक्षर 'o' है →char_1 = True- दोनों True हैं, इसलिए "on" + "ol" = "onol" में "no" सबस्ट्रिंग के रूप में मौजूद है