PDA

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";