*, #, 중복 제거

8665 단어
문자열에서 모든 * 및 이전 문자 제거:

/**
 * @param {string} s
 * @return {string}
 */
var removeStars = function (s) {
  return getString(s);
};

const getString = (str) => {
  let stack = [];
  for (let i = 0; i < str.length; i++) {
    if (str[i] === "*") {
      stack.pop();
    } else {
      stack.push(str[i]);
    }
  }

  return stack.join("");
};

// Input: s = "leet**cod*e"
// Output: "lecoe"


문자열에서 인접한 모든 중복 항목 제거:


/**
 * @param {string} s
 * @return {string}
 */
var removeDuplicates = function (s) {
  return getString(s);
};

const getString = (str) => {
  let stack = [];
  for (let i = 0; i < str.length; i++) {
    if (str[i] === stack[stack.length-1]) {
      stack.pop();
    } else {
      stack.push(str[i]);
    }
  }

  return stack.join("");
};
// Input: s = "abbaca"
// Output: "ca"



문자열에서 해시의 모든 # 및 백스페이스 제거:

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var backspaceCompare = function (s, t) {
  return getString(s) === getString(t);
};

const getString = (str) => {
  let stack = [];
  for (let i = 0; i < str.length; i++) {
    if (str[i] === "#") {
      stack.pop();
    } else {
      stack.push(str[i]);
    }
  }

  return stack.join("");
};

console.log(backspaceCompare("ab#c", "ad#c"));
Input: s = "ab#c", t = "ad#c"
Output: true
Explanation: Both s and t become "ac".

좋은 웹페이지 즐겨찾기