آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

حل مسئله

Pouya Asgharnejad Tehran  11 سال پیش  11 سال پیش
+2 0

سلام؛چجوری میشه یک معادله رو از داخل یک String حل کرد؟(مقدار X)

مثلا:

 String string = "10 + X = 40";
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Rabbit  11 سال پیش
+4 0

راه اول:

اولین راه حلی که به نظر من میرسه اینه که String رو به CharArray تبدیل کنی،Spaceها را حذف کنی و داخل آن پیمایش کنی. به هر علامت جمع و ضرب و ... که رسیدی مقادیر قبل از آن را به عنوان عدد ذخیره کنی و علامت ها را هم با توجه به کد ascii آن‌ها (یا با گذاشتن if) شناسایی کنی و اعمال کنی و دقت کنی پرانتز های تو در تو و اولویت علائم ریاضی را درست رعایت کنی.

راه دوم:

عبارت‌هایی که ما استفاده می‌کنیم عبارات میان‌وندی هستند.مثل:

2+3

که علامت جمع میان 2 و 3 قرار گرفته.

خیلی راحت میتوان این عبارت را به پسوندی تبدیل کرد (جستجو کن: الگوریتم تبدیل عبارت میان‌وندی به پسوندی). که میشه:

 2 3 +

حال با استفاده از یک پشته(stack) و با عمل push و pop می‌توان این عبارت پسوندی را پیمایش و نتیجه حاصل را به‌دست آورد.(جستجو کن: الگوریتم ارزیابی عبارت‌های پسوندی با استفاده از پشته)

خوبی روش دوم اینه که اولا الگوریتم های بهینه این کار موجوده، ثانیا سیستم عامل پردازش کمتری رو متحمل میشه و نهایتا شما نیازی نیست برای اولویت ها و پرانتز ها و غیره شرط های دست و پا گیر طراحی کنید و به طور خودکار این مسائل در الگوریتم های ارزیابی مورد بررسی قرار می‌گیرند.

پاسخ به سوال 
Criss  11 سال پیش
+2 0

میتونی از این هم استفاده کنی <

 

String str = "www.uncocoder.com";
str = str.substring(4, str.length());

نتیجه = uncocoder.com

با کد بالا تعیین کرده ایم که 4 کاراکتر اول رشته (String) حذف شود (به جای عدد 4 ، می توانید تعداد کاراکتر مورد نظر خود را بنویسید)،


String str = "www.uncocoder.com";
str = str.substring(0, str.length() - 4);

با کد بالا تعیین کرده ایم که 4 کاراکتر آخر رشته (String) حذف شود (به جای عدد 4 ، می توانید تعداد کاراکتر مورد نظر خود را بنویسید)، بنابراین نتیجه به صورت زیر می باشد :

www.uncocoder

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .