我将在从1开始的字符串中找到数字的顺序字符串。例如,我有这个字符串。
"456000123456009123456780001234000"
在这里,顺序字符串将是
"123456", "12345678", "1234"
如何有效地使用Javascript获得以上结果?
代码看起来像这样。
findSequential("456000123456009123456780001234000");
//expected output
"123456", "12345678", "1234"
***注意:“1”本身不是顺序的,例如:
"3938139" - has no sequence
"39381249" - has "12"
使用任何语言的解决方案将不胜感激,但更喜欢Java或C。
谢谢你的帮助!
最佳答案
一个简单的for循环应该能够实现这一目标。在JavaScript中:
function findSequential(s) {
const res = []
let current = []
let num = 1
for(let char of s) {
if (char == num) {
current.push(char)
num ++
} else if (current.length > 1) {
res.push(current.reduce((acc, cur) => acc += cur, ''))
if (char == 1) {
current = ['1']
num = 2
} else {
current = []
num = 1
}
} else if (current.length === 1) {
current = []
num = 1
}
}
if (current.length > 1) {
res.push(current.reduce((acc, cur) => acc += cur, ''))
}
return res
}
console.log(findSequential('31234121'))
关于javascript - 使用javascript查找字符串中的顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62461225/