Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Kiểm tra chuỗi có thể tạo từ chuỗi ngẫu nhiên trong JavaScript

Cho mảng tên và một chuỗi ký tự ngẫu nhiên. Viết hàm kiểm tra từng tên trong mảng có thể tạo thành hoàn toàn từ chuỗi ngẫu nhiên đó không (mỗi ký tự chỉ dùng một lần). Trả về tên đầu tiên thỏa mãn hoặc chuỗi rỗng.

Ví dụ: arr=['Dinesh','Mahesh','Rohit','Kamal',...], str='lsoaakjm' → 'Kamal'.

Ví dụ

const arr = ['Dinesh','Mahesh','Rohit','Kamal','Jatin Sapru','Jai'];
const str = 'lsoaakjm';
const initialise = (str = '', map) => {
  for (let i = 0; i < str.length; i++) map[str[i]] = (map[str[i]] || 0) + 1;
};
const deleteAll = map => { for (key in map) delete map[key]; };
const checkForFormation = (arr = [], str = '') => {
  const map = {};
  for (let i = 0; i < arr.length; i++) {
    const el = arr[i].toLowerCase();
    initialise(str, map);
    let j;
    for (j = 0; j < el.length; j++) {
      const char = el[j];
      if (!map[char]) break;
      else map[char]--;
    }
    if (j === el.length) return arr[i];
    deleteAll(map);
  }
  return '';
};
console.log(checkForFormation(arr, str));

Kết quả

Kamal