[英]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.