Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

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

ได้รับสตริงสองตัว 'a' และ 'b' ต้องตรวจสอบว่าทั้งสองเป็นอะนากรามกันหรือไม่ คืนค่า True/False

Input-1

String a = "india"
String b = "nidia"

Output

True

คำอธิบาย เนื่องจากสตริง 'b' มีตัวอักษรครบทุกตัวในสตริง 'a' จึงคืนค่า True

Input-2

String a = "hackathon"
String b = "achcthoon"

Output

False

คำอธิบาย เนื่องจากสตริง 'b' ไม่มีตัวอักษรครบเหมือนสตริง 'a' จึงคืนค่า False

แนวทางแก้ปัญหา

  • รับสตริงสองตัว 'a' และ 'b'
  • ฟังก์ชัน checkStringAnagrams(a, b) คืน true ถ้าเป็นอะนากราม มิฉะนั้น false
  • หาความยาวทั้งสองสตริง ตรวจสอบว่าเท่ากันหรือไม่
  • เรียงตัวอักษรทั้งสองสตริงตามลำดับเลขคณิต ตรวจสอบว่าเท่ากันหรือไม่
  • คืนค่า true หรือ false ตามลำดับ

ตัวอย่างโค้ด

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

เนื่องจากสตริง 'indian' มีชุดตัวอักษรเดียวกับ 'ndiani' ทั้งคู่เป็นอะนากราม จึงคืนค่า True