我目前正在做一個謎題,並且在如何執行以下操作時遇到了麻煩。繼承人在我的思緒有些情況下一些代碼(這還沒有工作)循環到一個字符串中的特定索引
const words = ['this', 'is', 'my', 'dog', 'bit', 'bite', 'every'];
const strings = ['thisis', 'thisisacat', 'thisisaduck', 'thisismy', 'thisismydog', 'bitevery'];
var count;
for (var i = 0 ; i < strings.length ; i++)
{
for (var j = 0; j <words.length; j++)
{
if(strings[i].indexOf(words[j]) !== -1)
{
count+=words[j].length;
}
}
}
基本上我想先去字this
檢查它是否在strings[j]
。如果是,則獲得words[i]
的長度,然後轉到words[i]'th
內strings[j]
的位置,這意味着我需要「is
」部分'thisis
'。基本上我只想測試strings
中的每個元素是否可以用words
中的任意數量的組合來表示。這當然可以用正則表達式來完成,但是我想使用我現有的思維過程。
TLDR
從我目前的樣子,我怎麼能檢查是否strings
每個元素(我在嘗試這種與indexOf
)中存在的words
陣列中的話,如果是,進入長該字的位置含義轉到i
位於thisis
的位置。我意識到我說的方式可能有點冗長,但我不知道要怎麼說。任何幫助表示讚賞。
示例執行
我們在strings[i]
,現在我們會檢查words
任何元素是strings[i]
。現在this
是'thisis'
,所以加四的指標,因爲這有一個四口之長,才能到第四位及以後的thisis
,現在我們有is
通過words
其餘部分,以便循環一遍,現在is
裏面is
這意味着我們已經在words
陣列中使用了一定數量的單詞成功創建了一個單詞。請注意,我實際上並不想從thisis
中刪除this
,因爲我知道在內存中完全修改字符串非常昂貴。
另一種運行
採取thisismydog
在strings
。讓我們通過單詞重複。 this
在thisismydog
裏面,所以現在到thisismydog
(因爲有4個長度)的第四個起因,現在我們考慮ismydog
。現在再次重複查看單詞中的元素。我們看到is
在那裏,所以我們去ismydog
中的第二個元素,即mydog
。自從我們到達單詞的末尾時,我們可以成功地得出結論,thisismydog
確實可以由單詞內的這些元素的組合來表示。
描述你想要生成的確切輸出,最好用2個例子。 – Amit
用你目前的方式?如果有更好更簡單的方法呢? – nicael
我已經添加了一個例子,我將添加另一個 –