View Full Version : سوال: چجوری میشه فهمید یک رشته متقارن هست ؟
IT.MAN
شنبه 24 اردیبهشت 1390, 14:44 عصر
سلام خدمت تمامی عزیزان انجمن برنامه نویس .. :قلب:
میخوام بدونم چجوری تو C میشه فهمید که یک رشته متقارن هست یا نه ؟
مثلا داریم رشته abcddcba برنامه چجوری چک میکنه متقارن بودنش رو ؟ بنظر خودم با 2 حلقه که حلقه دوم تو حلقه اول هست میشه این کارو کرد ولی یه جا گیر کردم اونم مقدار حلقه بودم بود یعنی تا چند امتداد داشته باشه
و پیشاپیش تشکر.. :خجالت:
milad.kian
شنبه 24 اردیبهشت 1390, 17:34 عصر
اگه این رشته رو تو یه آرایه بریزی او وقت میشه با یه for چک کرد . اول طول رشته رو حساب میکنی . مثلا در b میریزی . بعد جز صحیح b/2 رو تو n بریز . حالا این for رو بنویس
for ( int i = 0 ; i<n ; i++){
if (ch[i] != ch[b-i-1]){
printf(....);
break;
}
else
continue;
}
اگه پیغامی ندیدی یعنی همه چی خوبه !
جز صحیح هم تو cmath هست .
IT.MAN
شنبه 24 اردیبهشت 1390, 18:54 عصر
مشکل حل شد
دست گلت درد نکنه واقعا کمکت خیلی مفید و مهم بود
((هم فامیلی هم هستیم گویا.. )
موفق باشی و درپناه حق تعالی..
Salar Ashgi
یک شنبه 25 اردیبهشت 1390, 17:50 عصر
روشها زیاده ، مثلا :
استفاده از پشته
استفاده یک حلقه تکرار و بررسی مرحله به مرحله عنصرها ، یکی از اول و یکی از آخر (همانطور که دوستمون گفتن ولی کمی بهینه تر)
استفاده از تابعی که Reverse یک رشته را پیدا می کند و مقایسه آن با رشته اولیه
و ...
موفق باشید ./
jarchy
یک شنبه 25 اردیبهشت 1390, 18:22 عصر
شاید اینجا هم چیزی پیدا کنی
http://sgmandegar.blogfa.com
mahda123
یک شنبه 04 دی 1390, 23:48 عصر
سلام
ممنون ميشم اگه كمكم كنيد،برنامم رشته متقارن باليست پيوندي.نميدونم چراهررشته اي وارد ميكنم ميگه متقارن نيست
اگه ميشه اشكال برناممو بگين؟ for(i=0;i<w;i++)
{
cin>>y;
a.push(y);
b.add(y);}
for(i=0;i<w;i++){
a.top(y,h);
b.retrieve(z,h);
if(y!=z){
cout<<"no";
break;
}
else
cout<<"yes";
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.