我的js算法爬坑之旅-上升下降字符串

87 阅读1分钟

第四十九天:力扣第1370题,上升下降字符串

地址:leetcode-cn.com/problems/in…

思路:暴力解题,立个flag,0就是从小到大,1就是从大到小。

var sortString = function(s) {
  let si = s.split('').sort();
  let res = [];
  let flag = 0;
  while(si.length > 0)
  {
    if(flag === 0)
    {
      res.push(si[0]);
      si.splice(0, 1);
      for(let i = 0; i < si.length; i++)
      {
        if(res[res.length - 1] !== si[i])
        {
          res.push(si[i]);
          si.splice(i, 1);
          i--;
        }
      }
      flag = 1;
    }
    else
    {
      res.push(si[si.length - 1]);
      si.splice(si.length - 1, 1);
      for(let i = si.length - 1; i >= 0; i--)
      {
        if(res[res.length - 1] !== si[i])
        {
          res.push(si[i]);
          si.splice(i, 1);
        }
      }
      flag = 0;
    }
  }
  return res.join('');
};

执行用时:116 ms, 在所有 JavaScript 提交中击败了58.37%的用户

内存消耗:43.3 MB, 在所有 JavaScript 提交中击败了29.10%的用户