共通の開始語を返す


質問する


strsは単語を含む配列です.
共通の開始語(prefix)を返してください.
例:
strs = ['start', 'stair', 'step']
「st」に戻る
strs = ['start', 'wework', 'today']
戻る

に答える


しょかい

  • 配列の0番目の要素は、まず変数に宣言され、最初から残りの配列の要素を比較しようとしますが、配列の長さが不明で、比較するたびに変数を宣言する必要があるかどうか悩んでいます.

    解決した問題


    条件文
  • 、入力パラメータ長が0の場合0を返します
  • prefix変数宣言配列の0番目の要素
  • 繰り返し文
  • は、アレイの最初からアレイの長さi順に回転する.
  • while文を使用して、strs[i]がプレフィックスと一致するまで、substringによって後から文字を切り取り、indexOfと比較します.
  • 解決コード

    const getPrefix = strs => {
      let prefix = strs[0]
      if (strs.length === 0){
        prefix = '';
      }
      for (i = 1; i < strs.length; i++){
        // console.log(strs[i])
        while(strs[i].indexOf(prefix) !== 0){
          prefix = prefix.substring(0, prefix.length-1)
          console.log(prefix)
        }
      }
      return prefix
    }
    
    console.log(getPrefix(['flower', 'flue', 'fly'])) //'fl'