Menu
CoddyTech

Isomorphic Strings

קלגיבובpython iconjava iconcpp iconc iconjs icon+10

שתי מחרוזות הן איזומורפיות אם אפשר לשנות את שמות התווים של הראשונה כדי לקבל את השנייה. כל מופע של תו מקבל את אותו שם חדש, שני תווים שונים לעולם לא מקבלים את אותו שם, ותו יכול לשמור על שמו המקורי. עבור שתי מחרוזות s ו-t באותו אורך, החזר true כשהן איזומורפיות ו-false כשהן אינן איזומורפיות.

פונקציה

isIsomorphic(s: string, t: string) → boolean
sstring
המחרוזת שיש לשנות את שמה, אותיות וספרות
tstring
המחרוזת שאליה יש להגיע, באותו אורך כמו s
מחזירהboolean
נכון אם שינוי חד-חד-ערכי של שמות התווים של s נותן את t

אילוצים

  • 1 ≤ s.length ≤ 2 × 104
  • t.length == s.length
  • s ו-t מכילות רק אותיות באנגלית וספרות. אותיות גדולות וקטנות נחשבות לתווים שונים.

דוגמאות

קלט
s = "noon"t = "deed"
פלט
true
הסבר
שנה את השם של n ל־d ואת השם של o ל־e. כל המיקומים מתאימים לשינוי השמות הזה, ושתי האותיות מקבלות שמות שונים.
challenge icon

שאלת המשך

בהינתן רשימה של מילים, האם תוכלו לקבץ יחד את המילים שהן איזומורפיות זו לזו בלי להשוות בין כל זוג מילים?

איפוס הקוד
def isIsomorphic(s, t):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

s = "noon"
t = "deed"

הפלט הצפוי

true