reverseWords নামে একটি মেথড তৈরি করুন যা char array ইনপুট নেয় এবং প্রতিটি ক্যারেক্টার জন্য যতক্ষণ খালি স্পেস না পাওয়া যায় ততক্ষণ শব্দটি রিভার্স করুন। শেষ ধাপে পুরো স্ট্রিংকে দৈর্ঘ্য 0 থেকে n-1 পর্যন্ত রিভার্স করুন। প্রথম ধাপে স্ট্রিং "This is my book" "koob ym si siht"-এ পরিণত হবে। দ্বিতীয় ধাপের শেষে শব্দগুলো রিভার্স হয়ে "book my is This" হবে।
টাইম কমপ্লেক্সিটি − O(N)
উদাহরণ
using System;
namespace ConsoleApplication
{
public class Arrays
{
static void Reverse(char[] str, int start, int end)
{
char temp;
while (start <= end)
{
temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
public char[] ReverseWords(char[] s)
{
int start = 0;
for (int end = 0; end < s.Length; end++)
{
if (s[end] == ' ')
{
Reverse(s, start, end);
start = end + 1;
}
}
Reverse(s, 0, s.Length - 1);
return s;
}
}
class Program
{
static void Main(string[] args)
{
Arrays a = new Arrays();
string s = " This is my book ";
var res = a.ReverseWords(s.ToCharArray());
Console.WriteLine(new String(res));
Console.ReadLine();
}
}
}
আউটপুট
book my is This