Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การจัดรูปแบบสตริงเพื่อแยกอักขระที่เหมือนกันใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงอักขระเป็นอาร์กิวเมนต์แรกและตัวเดียว

ฟังก์ชันควรพยายามและจัดระเบียบอักขระที่มีอยู่ในสตริงใหม่เพื่อไม่ให้มีอักขระสองตัวที่อยู่ติดกัน

หากมีชุดค่าผสมดังกล่าวอยู่อย่างน้อยหนึ่งชุด ฟังก์ชันของเราจะคืนค่าสายอักขระผสมนั้น มิฉะนั้นฟังก์ชันของเราจะคืนค่าสตริงว่าง

ตัวอย่างเช่น −

หากสตริงอินพุตเป็น −

const str = 'add';

จากนั้นฟังก์ชันของเราสามารถส่งออก -

const output = 'dad';

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const str = 'add';
const formatString = (str = '') => {
   const map = {};
   for(let i = 0; i < str.length; i++){
      map[str[i]] = map[str[i]] || 0;
      map[str[i]] ++;
   }
   let keys = Object.keys(map).sort((a, b) => {
      if(map[a] < map[b]){
         return 1;
      };
      return -1;
   });
   let flag = str.length%2?(Math.floor(str.length/2)+1):str.length/2;
   if(map[keys[0]] > flag){
      return "";
   };
   const res = [];
   let index = 0, max = str.length-1;
   while(keys.length){
      let currKey = keys.shift();
      let count = map[currKey];
      while(count){
         res[index] = currKey;
         index = index+2;
         if(index>max)
            index=1;
         count--;

      }
   }
   return res.join("");
};
console.log(formatString(str));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

dad