簡體   English   中英

獲取 JavaScript 中字符串的所有子字符串

[英]Get all substrings of a string in JavaScript

我有以下 function 從 JavaScript 中的字符串中獲取所有子字符串。 我知道這是不正確的,但我覺得我正在以正確的方式去做。 任何建議都會很棒。

 var theString     = 'somerandomword',
     allSubstrings = []; 

getAllSubstrings(theString);

function getAllSubstrings(str) {

  var start = 1;

  for ( var i = 0; i < str.length; i++  ) {

     allSubstrings.push( str.substring(start,i) ); 

  }

} 

console.log(allSubstrings)

編輯:如果我的問題不清楚,請道歉。 substring 我的意思是字符串中所有字母的組合(不必是實際單詞)所以如果字符串是'abc',你可以有[a,ab,abc,b,ba,bac等......]謝謝對於所有的回應。

子字符串需要兩個嵌套循環。

 function getAllSubstrings(str) { var i, j, result = []; for (i = 0; i < str.length; i++) { for (j = i + 1; j < str.length + 1; j++) { result.push(str.slice(i, j)); } } return result; } var theString = 'somerandomword'; console.log(getAllSubstrings(theString));
 .as-console-wrapper { max-height: 100% !important; top: 0; }

已接受答案的修改版本。 為了給出置換的最小字符串長度

 function getAllSubstrings(str, size) { var i, j, result = []; size = (size || 0); for (i = 0; i < str.length; i++) { for (j = str.length; j - i >= size; j--) { result.push(str.slice(i, j)); } } return result; } var theString = 'somerandomword'; console.log(getAllSubstrings(theString, 6));

以下是該問題的遞歸解決方案

 let result = []; function subsetsOfString(str, curr = '', index = 0) { if (index == str.length) { result.push(curr); return result; } subsetsOfString(str, curr, index + 1); subsetsOfString(str, curr + str[index], index + 1); } subsetsOfString("somerandomword"); console.log(result);

使用子字符串函數的答案。

 function getAllSubstrings(str) { var res = []; for (let i = 0; i < str.length; i++) { for (let j = i + 1; j <= str.length; j++) { res.push(str.substring(i, j)); } } return res; } var word = "randomword"; console.log(getAllSubstrings(word));

以下是查找所有子字符串的簡單方法


    var arr = "abcde";

     for(let i=0; i < arr.length; i++){

      for(let j=i; j < arr.length; j++){

      let bag ="";
      for(let k=i; k<j; k++){
       bag+ = arr[k]
    }
    console.log(bag)
  }
}
function generateALlSubstrings(N,str){
    
    for(let i=0; i<N; i++){

        for(let j=i+1; j<=N; j++){

            console.log(str.substring(i, j));
        }
    }
}
function getSubstrings(s){
    //if string passed is null or undefined or empty string
    if(!s)   return []; 

    let substrings = [];

    for(let length = 1 ; length <= s.length; length++){
        for(let  i = 0 ; (i + length) <= s.length ; i++){
            substrings.push(s.substr(i, length));
        }
    }

    return substrings;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM