سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Mehrad
commonprefix
جامعه پایتون (وب) ایجاد شده در ۰۸ دی ۱۴۰۰

سلام من یک کد که بدون zipنوشته شده باشه رو پیدا کردم. عملکرد حلقه فور برام یک مقدار گنگ هست لطفا توضیح بدید

275d-soal.jpeg

وقتی به حلقه میرسیم هر کاراکتر کلمه اخرلیستو با کاراکتر‌های shortest مقایسه میکنیم اگر یکجا برابر نباشه برنامه بریک میشه میاد بیرون سوالی که دارم کلمه وسط چی میشه؟

سلام وقت بخیر مهرداد جان

قبل از پاسخ به سوال برای تریس کردن الگورتیمی که نوشتید میتونید با BreakPoint پایچارم یا هر ide دیگه این کار رو به راحتی انجام بدید .

در واقع ما بیرون از حلقه اومدیم و prefix رو تعریف ککردیم و به اون مقدار یه استرینگ خالی رو دادیم تا در ادامه یعنی در حلقه یه کاری انجام بدیم

همونطور که گفتید وقتی به حلقه میرسیم هر کاراکتر کلمه اخرلیست رو با کاراکتر خونه آی shortest مقایسه میکنیم اگر برابر بودند

چنین اتفاق می‌افتد

prefix = prefix + my_str[len(my_str) - 1][i] 

در خط کد بالا پرفیکس در ابتدا برابر با مقدار یک رشته خالی هست یعنی "" که این رشته خالی رو با مقدار my_str[len(my_str) - 1][i] یعنی جایی که بعد اول برابر سایز منهای 1 هست و بعد دوم برابر مقدار i هست با پرفیکس جمع میکنیم فرض کنید این بار پرفیکس ما میشه "S" حال حلقه برای بار دوم میخواهد پیمایش کند این بار prefix ما مقدار استرینگ خالی نیست و برابر مقدار "S" هست که دوباره می‌آییم جمع میکنیم با مقدار my_str[len(my_str) - 1][i] فرض کنید این مقدار میشه "A" که وقتی با پرفیکس جمع بشه میشه "SA" و به همین ترتیب ادامه دار خواهد بود تا زمانی که شرط برقرار نباشد

امیدوارم خوب توضیح داده باشم

موفق باشید

بهترین پاسخ
پوریا شفیعی ۰۹ دی ۱۴۰۰، ۱۴:۴۳