PDA

View Full Version : مبتدی: الگوریتم برای جابجا کردن دو کاراکتر در رشته



salehbagheri
دوشنبه 15 شهریور 1389, 19:44 عصر
سلام

رشته زیر رو تصور کنید:

"td7edg7s7ad"

در این رشته باید به جای 7 حرف d جایگزین بشه و به جای d عدد 7 !

در این رشته ممکنه از همه نوع کاراکتری به کار گرفته شده باشه پس انجام این کار با کاراکتر ثالث هم منتفیه ...

راحت ترین روش برای این کار چیه؟

Salar Ashgi
دوشنبه 15 شهریور 1389, 22:32 عصر
صالح جان ، نمیدونم Order الگوریتم برات مهمه یا نه ؟! ولی کد زیر همینطوری بذهنم رسید ؛
اینجا هم تالار الگوریتمه ولی به خاطر اینکه مساله خوب شفاف سازی بشه با کد C#‎ نوشتم :

*) متودی واسه اینکار :



string change_str(string str, char ch1, char ch2)
{
string res = "";
foreach (char c in str)
{
if (c != ch1 && c != ch2)
res += c.ToString();
else if (c == ch1)
res += ch2.ToString();
else
res += ch1.ToString();
}
return res;
}
خروجی :


private void button1_Click(object sender, EventArgs e)
{
string str = "td7edg7s7ad";
string res = change_str(str, '7', 'd');
MessageBox.Show(res);

}
امیدوارم مفید بوده باشه !

salehbagheri
دوشنبه 15 شهریور 1389, 22:48 عصر
استفاده از این الگوریتم رو برای رشته های سنگین و طولانی هم توصیه میکنید؟

چون من میخوام برای رمزنگاری فایلها و اسناد از این روش استفاده کنم که معمولاً بین 5 تا 10 مگابایت یا بیشتر هستند.

Salar Ashgi
دوشنبه 15 شهریور 1389, 22:59 عصر
استفاده از این الگوریتم رو برای رشته های سنگین و طولانی هم توصیه میکنید؟

فک نکنم مشکلی داشته باشه ، چون متود ما فقط یه حلقه داره و از حلقه های تو در تو و ... استفاده
نشده ! تو حالات بزرگ هم میشه بجای String از String Builder استفاده کرد ، شایدم بشه با دستورات LINQ کمی بهینه ترش کرد ، ولی فک نکنم زیاد فرق کنه ، البته خودت میتونی با StopWatch زمان اجرای
الگوریتم ها رو محاسبه کنی !
موفق باشی ./