ให้สองสตริง 'a' และสตริง 'b' เราต้องตรวจสอบว่าเป็นแอนนาแกรมของกันและกันหรือไม่และส่งคืน True/False ตัวอย่างเช่น
อินพุต-1 −
String a= “india” String b= “nidia”
ผลผลิต −
True
คำอธิบาย − เนื่องจากสตริงที่กำหนด 'b' มีอักขระทั้งหมดในสตริง 'a' ดังนั้นเราจะคืนค่าเป็น True
อินพุต-2 −
String a= “hackathon” String b= “achcthoon”
ผลผลิต −
False
คำอธิบาย − เนื่องจากสตริงที่ระบุ 'b' ไม่มีอักขระทั้งหมดเหมือนกับสตริง 'a' ดังนั้นเราจึงคืนค่าเป็นเท็จ
แนวทางที่ใช้ในการแก้ปัญหานี้
ในสตริงที่กำหนด 'a' และ 'b' เราจะตรวจสอบว่ามีความยาวเท่ากันหรือไม่ จากนั้นเราจะจัดเรียงสตริง หากทั้งสองสตริงเท่ากัน ให้ส่งคืน "True"; ถ้าไม่ใช่ ให้พิมพ์ “False”
-
รับอินพุตสองสตริง 'a' และ 'b'
-
ฟังก์ชัน checkStringAnagrams(string a, string b) ซึ่งจะคืนค่า จริง หากแอนนาแกรมของกันและกันเป็นเท็จ
-
หาความยาวของทั้งสองสายและตรวจสอบว่าเท่ากันหรือไม่
-
ตอนนี้จัดเรียงสตริงทั้งสองตามลำดับศัพท์และตรวจสอบว่าเท่ากันหรือไม่
-
คืนค่าเป็นจริงหรือเท็จตามนั้น
ตัวอย่าง
function checkStringsAnagram(a, b) { let len1 = a.length; let len2 = b.length; if(len1 !== len2){ console.log('Invalid Input'); return } let str1 = a.split('').sort().join(''); let str2 = b.split('').sort().join(''); if(str1 === str2){ console.log("True"); } else { console.log("False"); } } checkStringsAnagram("indian","ndiani")
ผลลัพธ์
การเรียกใช้โค้ดด้านบนจะสร้างผลลัพธ์เป็น
True
เนื่องจากสตริง 'อินเดียน' มีชุดอักขระเหมือนกันกับสตริงอื่น 'ไดอานี' ทั้งคู่จึงเป็นแอนนาแกรมของกันและกัน และด้วยเหตุนี้ เราจะคืนค่าเป็น True