举个例子,我有下面的话
THIS TEXT IS A SAMPLE TEXT我被赋予字符索引7。
然后,当我将句子分割成单词时,我必须返回索引1,这是包含字符索引的单词的索引,而不是与构成字符索引的单词完全匹配的5,而不是字符所在的正确索引。
基本上,我试图用字符索引(与字符拆分时)返回字符所在位置(分词时)的正确的单词索引。
我想我应该用下面这样的东西来重建这个单词,以便在字符处找到这个单词。
let curString = 'find a word from here';
let initialPositin = 5
let position = initialPositin
let stringBuilder = '';
while(position > -1 && curString.charAt(position) !== ' '){
console.log('run 1')
console.log(position);
stringBuilder = curString.charAt(position) + stringBuilder;
position --;
}
console.log(stringBuilder)
position = initialPositin + 1;
while(position < curString.length && curString.charAt(position) !== ' '){
console.log('run 2')
stringBuilder += curString.charAt(position);
position ++;
}
console.log(stringBuilder);然后将句子分割成单词,然后找到包含我所构造的单词的所有索引。然后遍历所有已发现的单词,并重建先前的单词,以查看重建中的目标字符的索引是否与给定的字符位置匹配。
感觉不太有效率。有人有更好的建议吗?
我更喜欢javascript,但我可以自己翻译任何其他语言。
发布于 2018-08-03 09:03:47
我认为您可以只计算给定索引之前发生的空格,比如
let curString = 'find a word from here';
let givenIndex = 9;
let spaceIndex = 0;
for (var i = 0; i < curString.length; i++) {
if(curString.charAt(i) == ' ') {
if (i < givenIndex) {
spaceIndex++;
} else {
// found what we need
console.log(spaceIndex);
}
}
}发布于 2018-08-03 08:56:43
也许您可以构建一个返回所有空格位置的函数。然后,您可以看到字符索引在空格位置列表中的位置。
发布于 2018-08-03 09:14:07
text = "THIS TEXT IS A SAMPLE TEXT"
indexes = []
current_word = 0
for i in range(0, len(text)):
if text[i] == ' ':
current_word += 1 # After a ' ' character, we passed a word
else:
indexes.append(current_word) # current character belongs to current word您可以使用这段代码(用Python3编写)构建一次索引数组,然后可以将其用于每个索引。如果您也想在索引数组中计数‘’字符,可以简单地将它们添加到for循环中(在If语句中)。
https://stackoverflow.com/questions/51668748
复制相似问题