סעיף א
נתונה הפעולה secret() הבאה המקבלת שתי מחרוזות:
def secret(s1, s2):
if s1 == s2:
return False
while len(s1) >0 and len(s2)>0 :
pos = s2.find(s1[0])
if pos == -1:
return False
s1 = s1[1:]
s2 = s2[0:pos]+s2[pos+1:]
return len(s1) == 0
- תנו דוגמה למחרוזת s2 באורך של שישה תווים שעבורה הפעולה secret("HELLO!", s2) תחזיר ערך True.
- נתונה הטענה הבאה: אם זימון הפעולה secret(s1, s2) מחזיר ערך True, גם זימון הפעולה secret(s2, s1) יחזיר ערך True. האם הטענה נכונה? הסבירו את תשובתכם.
- מה מבצעת הפעולה secret באופן כללי?
סעיף ב
נתונה הפעולה mystery המקבלת רשימה מחרוזות. הפעולה משתמשת בפעולה secret:
def mystery(arr):
for i in range(0, len(arr)-1, 2):
if not secret(arr[i], arr[i+1]):
return False
return True
- תנו דוגמה לרשימה arr של שש מחרוזות שעבורה הפעולה mystery תחזיר ערך true.
- נתונה הטענה הבאה: אם זימון הפעולה mystery(arr) מחזיר ערך True, הרשימה arr לא כוללת זוג מחרוזות זהות אשר נמצאות במקומות עוקבים. האם הטענה נכונה? הסבירו את תשובתכם.
- מהי הסיבוכיות של הפעולה mystery? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.