في هذا البرنامج التعليمي، سوف نكتب برنامج بايثون لإيجاد الفرق بين السلسلتين المعطاتين. يمكن طرح هذه المشكلة في المقابلة. دعونا نفهم بيان المشكلة وبعد ذلك سوف نقترب من الحل.
عرض المشكلة -
هناك سلسلتان معينتان س و ر. يتم إنشاء السلسلة t عن طريق الخلط العشوائي للسلسلة ثم تتم إضافة حرف آخر في أي موضع عشوائي. نحتاج إلى كتابة برنامج بايثون يُرجع الحرف المُضاف إليه ر.
مثال -
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'>
- طول == طول + 1
- تتكون s وt من أحرف إنجليزية صغيرة. =>
برنامج بايثون
دعونا نفهم برنامج بايثون التالي.
مثال -
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؛ إذا كان الشرط مطابقًا، فإنه يُرجع هذا العنصر.