मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं। हमें यह जांचना है कि क्या s, t का सफिक्स (suffix) है या नहीं।
उदाहरण के लिए, यदि इनपुट s = "ate", t = "unfortunate" है, तो आउटपुट True होगा।
समाधान दृष्टिकोण
हम दोनों स्ट्रिंग्स के अंत से तुलना शुरू करते हैं। यदि s की लंबाई t से अधिक है, तो यह सफिक्स नहीं हो सकता।
एल्गोरिदम चरण:
s_len = len(s),t_len = len(t)- यदि
s_len > t_len, तो False लौटाएं i0 सेs_len-1तक के लिए:- यदि
s[s_len-i-1] != t[t_len-i-1], तो False लौटाएं - True लौटाएं
पायथन कार्यान्वयन
def solve(s, t):
s_len = len(s)
t_len = len(t)
if s_len > t_len:
return False
for i in range(s_len):
if s[s_len - i - 1] != t[t_len - i - 1]:
return False
return True
# सरल संस्करण (पायथन बिल्ट-इन)
def solve_simple(s, t):
return t.endswith(s)
s = "ate"
t = "unfortunate"
print(solve(s, t)) # True
print(solve_simple(s, t)) # True
इनपुट
"ate", "unfortunate"
आउटपुट
True
व्याख्या:
"unfortunate" का अंत "ate" से होता है, इसलिए यह सफिक्स है।