Đảo ngữ
Đảo ngữ là những cặp chuỗi, một trong số đó khi được sắp xếp lại theo một mẫu nhất định sẽ tạo ra cặp còn lại.
Ví dụ -
'xin chào' và 'lolhe' là từ đảo ngữ vì chúng ta có thể sắp xếp lại thứ tự 'lolhe' để tạo thành chuỗi 'xin chào' hoặc ngược lại.
Chúng tôi được yêu cầu viết một hàm JavaScript có hai chuỗi, chẳng hạn như str1 và str2. Hàm sẽ trả về true nếu các chuỗi là chữ đảo ngữ của nhau, ngược lại là false.
Chúng ta có thể tạo một bản đồ có tính toán số lượng ký tự cho mỗi chuỗi đầu vào. Sau đó, chúng tôi có thể so sánh các bản đồ để xem chúng có giống nhau hay không.
Ví dụ
const str1 = 'hello'; const str2 = 'lolhe'; const charCount = string => { const table = {}; for (let char of string.replace(/\W/g, "").toLowerCase()) table[char] = table[char] + 1 || 1; return table; }; const anagrams = (stringA, stringB) => { const charCountA = charCount(stringA); const charCountB = charCount(stringB); if (Object.keys(charCountA).length !== Object.keys(charCountB).length) return false; for (let char in charCountA) if (charCountA[char] !== charCountB[char]) return false; return true; }; console.log(anagrams(str1, str2));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
true