במדריך זה, נכתוב תוכנית Python כדי למצוא את ההבדל בין שתי המחרוזות הנתונות. את הבעיה הזו אפשר לשאול בראיון. בואו נבין את הצהרת הבעיה ואז ניגש לפתרון.
הצהרת בעיה -
יש שני מחרוזות שניתנו ס ו ט. מחרוזת t נוצרת על ידי מחרוזת ערבוב אקראית ולאחר מכן הוספה תו אחד נוסף בכל מיקום אקראי. אנחנו צריכים לכתוב תוכנית Python שמחזירה את האות שנוספה אליה ט.
דוגמא -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
דוגמא -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
אילוצים:
יש להקפיד על האילוצים הבאים -
- 0<= s.length <='1000</li'>
- t.length == s.length + 1
- s ו-t מורכבים מאותיות קטנות באנגלית. =>
תוכנית פייתון
בואו נבין את תוכנית Python הבאה.
דוגמא -
class Solution(object): def findTheDifference(self, s, t): ls_s = [s[i] for i in range(len(s))] ls_t = [t[i] for i in range(len(t))] for elem in ls_s: ls_t.remove(elem) return(ls_t[0]) obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
תְפוּקָה:
'e'
הסבר -
יצירת טבלאות בלטקס
בקוד לעיל, הגדרנו את הפונקציה findThedifference() שלוקחת שתי מחרוזות כארגומנטים. השתמשנו בהבנת הרשימה כדי להמיר את המחרוזות לרשימה. עכשיו, אנחנו חוזרים ls_s רשימה, בחר אלמנט בודד והסר את הרכיב הזה לרשימה השנייה ls_t. אם כל הרכיב הוסר מהאלמנט השני, זה אומר ששתי המחרוזות הנתונות זהות, אחרת החזר את האלמנט הראשון של הרשימה השנייה.
פתרון - 2
בוא נראה פתרון אחר לבעיה.
class Solution: def findTheDifference(self, s: str, t: str) -> str: #sort both the strings s_list = sorted(s) t_list = sorted(t) s_list.append(0) #to make the length equal else we will get list index out of bounds (1 extra char in string2) for i in range(len(t_list)): if s_list[i] != t_list[i]: #if character at i not same for both the strings, we get our answer return t_list[i] obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
תְפוּקָה:
e
הסבר -
במדריך זה, השתמשנו ב- מְמוּיָן() שיטה, אשר ממירה את המחרוזת לרשימת תווים באופן ממוין. יצרנו את שתי רשימות המחרוזות והוספנו אלמנט נוסף כ-0 כדי שהאורך יהיה שווה; אחרת, נוציא את אינדקס הרשימה מחוץ לתחום. כעת חזרנו על ה-t_list ובדקנו אם s_list אלמנט אינו שווה ל-t_list; אם התנאי מותאם, הוא מחזיר את הרכיב הזה.