দুটি ভিন্ন স্ট্রিং s1 এবং s2 দেওয়া আছে। কাজ হল একটি স্ট্রিং S বানানো s1 এবং s2-এর ইউনিক অক্ষরগুলো মিলিয়ে, তারপর S- থেকে একটা ক্যারেক্টার মুছে দেখতে হবে যে ফলাফলটি s1 বা s2-এর সমান হয় কিনা।
উদাহরণ
ইনপুট - string S1 = "utter", string S2 = "butter"
আউটপুট - এক ক্যারেক্টার মুছে দুটি স্ট্রিংয়ের যেকোনো একটার সমান হওয়া স্ট্রিংর সংখ্যা: 1
ব্যাখ্যা - S = "butter"। এখান থেকে 'b' মুছে দিলে "utter" হয় যা s1-এর সমান। তাই কাউন্ট ১।
ইনপুট - string S1 = "fat", string S2 = "rat"
আউটপুট - এক ক্যারেক্টার মুছে দুটি স্ট্রিংয়ের যেকোনো একটার সমান হওয়া স্ট্রিংর সংখ্যা: 2
ব্যাখ্যা - S = "frat"। 'r' মুছে দিলে "fat" (s1), 'f' মুছে দিলে "rat" (s2)। তাই কাউন্ট ২।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- দুটি স্ট্রিং
s1,s2ডিক্লেয়ার করুন এবংs1-এর সাইজ নিয়ে ফাংশনে পাস করুন। count = 2(সর্বোচ্চ আউটপুট ২ হতে পারে)।- দুটি টেম্পোরারি ভেরিয়েবল
start,endলুপ ট্রাভার্সালের জন্য। - i=0 থেকে size_S1 পর্যন্ত লুপ: যদি
s1[i] != s2[i]হয় তবেstart=iএবং ব্রেক। - i=size_S1-1 থেকে ০ পর্যন্ত লুপ: যদি
s1[i] != s2[i]হয় তবেend=iএবং ব্রেক। - যদি
end < startহয় তবেcount = 26 * (size_S1 + 1)রিটার্ন করুন। - অন্যেইফ
start == endহয় তবেcountরিটার্ন করুন। - অন্যথায়:
- i=start+1 থেকে end পর্যন্ত লুপ: যদি
s1[i] != s2[i-1]হয় তবেcount--এবং ব্রেক। - i=start+1 থেকে end পর্যন্ত লুপ: যদি
s1[i-1] != s2[i]হয় তবেcount--এবং ব্রেক।
- i=start+1 থেকে end পর্যন্ত লুপ: যদি
- কাউন্ট রিটার্ন করুন এবং প্রিন্ট করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int equal_removal(string S1, string S2, int size_S1) {
int count = 2;
int start, end;
for (int i = 0; i < size_S1; ++i) {
if (S1[i] != S2[i]) {
start = i;
break;
}
}
for (int i = size_S1 - 1; i >= 0; i--) {
if (S1[i] != S2[i]) {
end = i;
break;
}
}
if (end < start) {
count = 26 * (size_S1 + 1);
return count;
} else if (start == end) {
return count;
} else {
for (int i = start + 1; i <= end; i++) {
if (S1[i] != S2[i - 1]) {
count--;
break;
}
}
for (int i = start + 1; i <= end; i++) {
if (S1[i - 1] != S2[i]) {
count--;
break;
}
}
return count;
}
}
int main() {
string S1 = "utter";
string S2 = "butter";
int size_S1 = S1.length();
cout << "Count of strings that become equal to one of the two strings after one removal are: " << equal_removal(S1, S2, size_S1);
return 0;
}
উপরের কোড রান করলে নিচের আউটপুটটি পাওয়া যাবে:
আউটপুট
Count of strings that become equal to one of the two strings after one removal are: 1