Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เขียนโปรแกรมใน JavaScript เพื่อตรวจสอบว่าสองสตริงเป็นแอนนาแกรมของกันและกันหรือไม่


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