Computer >> Máy Tính >  >> Lập trình >> Javascript

Chuỗi mã hóa dựa trên tần số ký tự trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy chuỗi, str, làm đối số đầu tiên và đối số duy nhất.

Hàm của chúng ta nên tạo một chuỗi mới dựa trên chuỗi đầu vào trong đó mỗi ký tự trong chuỗi mới là '(' nếu ký tự đó chỉ xuất hiện một lần trong chuỗi gốc hoặc ')' nếu ký tự đó xuất hiện nhiều hơn một lần trong chuỗi gốc.

Và chúng ta nên bỏ qua capitali

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

const str = 'Success';

Đầu ra

const output = ')())())';

Ví dụ

Sau đây là mã -

const str = 'Success';
const mapString = (str = '') => {
   const mainStr = str.toLowerCase()
   const hash = {}
   let res = ''
   for (let char of mainStr) {
      hash[char] = ~~hash[char] + 1
   }
   for (let char of mainStr) {
      if (hash[char] > 1) {
      res += ')'
   } else {
      res += '('
   }
}
   return res
};
console.log(mapString(str));

Đầu ra

)())())