Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // https://www.codewars.com/kata/59fab1f0c9fc0e7cd4000072/train/javascript
- function solve(checked, target) {
- let checkedLetterAmountTable = {} // створимо мапу (так, в js це об'єкт) для перевіряємого рядка
- for (let i = 0; i < checked.length; i++) { // заповнимо її
- if (checkedLetterAmountTable[checked[i]]) {
- checkedLetterAmountTable[checked[i]]++;
- } else {
- checkedLetterAmountTable[checked[i]] = 1;
- }
- }
- let targetLetterAmountTable = {} // для цільового теж саме - цільову мапу
- for (let i = 0; i < target.length; i++) {
- if (targetLetterAmountTable[target[i]]) {
- targetLetterAmountTable[target[i]]++;
- } else {
- targetLetterAmountTable[target[i]] = 1;
- }
- }
- console.log(checkedLetterAmountTable);
- console.log(targetLetterAmountTable);
- let counter = 0;
- for (letter in checkedLetterAmountTable) { // так переберемо всі літери перевіряємого рядка, точніше всі ключі мапи
- if (targetLetterAmountTable[letter]) { // якщо є такий ключ в цільовій мапі
- if (checkedLetterAmountTable[letter] < targetLetterAmountTable[letter]) { // якщо кількість літер в перевіряємому менше ніж в таргеті
- return 0; // не шмагла
- } else { // якщо в таргеті не більше, то полічимо на скільки, тобто скільки треба видалити з перевіряємого
- counter += (checkedLetterAmountTable[letter] - targetLetterAmountTable[letter])
- console.log(counter);
- }
- } else { // якщо ж в таргеті взагалі немає ключа (літери) то потрібно видалити всю кількість поточної літери з перевіряємого
- counter += checkedLetterAmountTable[letter];
- console.log(counter);
- }
- }
- console.log(counter);
- return counter;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement