ให้สองสตริง '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