Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

最長の有効な括弧JavaScriptを見つける


文字'('および')'のみを含む文字列を指定すると、最も長い有効な(整形式の)括弧サブ文字列の長さがわかります。

括弧のセットは、開始括弧ごとに終了括弧が含まれている場合にのみ、整形式の括弧であると見なされます。

例-

'(())()' is a well-formed parentheses
'())' is not a well-formed parentheses
'()()()' is a well-formed parentheses

const str = '(())()(((';
   const longestValidParentheses = (str = '') => {
      var ts = str.split('');
      var stack = [], max = 0;
      ts.forEach((el, ind) => {
         if (el == '(') {
            stack.push(ind);
         }
      else {
         if (stack.length === 0 || ts[stack[stack.length - 1]] == ')'){
            stack.push(ind);
         }
         else {
            stack.pop();
         };
      }
   });
   stack.push(ts.length);
   stack.splice(0, 0, -1);
   for (let ind = 0;
   ind< stack.length - 1; ind++) {
      let v = stack[ind+1] - stack[ind] - 1; max = Math.max(max, v);
   };
   return max;
}; console.log(longestValidParentheses(str));

出力

そして、コンソールの出力は-

になります
6

  1. JavaScriptを使用して最長の非負の合計シーケンスを見つける

    問題 整数のシーケンスを含む配列を受け取るJavaScript関数を作成する必要があります。各要素には、-1から1の範囲の可能な値が含まれます。 この関数は、そのシーケンスの最長のサブセクションのサイズを合計がゼロ以上で返す必要があります。 例 以下はコードです- const arr = [-1, -1, 0, 1, 1, -1, -1, -1]; const longestPositiveSum = (arr = []) => {    let sum = 0;    let maxslice = 0;    let l

  2. JavaScriptを使用して文字列内の最長の母音部分文字列の長さを検索する

    問題 文字列を取り込むJavaScript関数を作成する必要があります。この関数は、母音のみを含む最長の連続した部分文字列の長さを返す必要があります。 例 以下はコードです- const str = 'schooeal'; const findLongestVowel = (str = '') => {    let cur = 0    let max = 0    for (let i = 0; i < str.length; ++i) {