你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度n ~= 500,000),而 s 是个短字符串(长度 <=100)。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
进阶:时间复杂度
,空间复杂度%5C)
你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度n ~= 500,000),而 s 是个短字符串(长度 <=100)。
共两行,第一行为字符串s, 第二行为字符串t
字符串t的长度 1<=n<=500000
字符串s的长度 1<=m<=100
输出true或者是false,true表示是s是t的子序列,false表示s不是t的子序列
abc ahbgdc
true
axc ahbgdc
false
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const arr=[]
rl.on("line", function (line) {
arr.push(line)
if(arr.length===2){
let s=arr[0]
let t=arr[1]
let str=''
let index=0
for(let i=0;i<s.length;i++){
for(let j=index;j<t.length;j++){
if(s[i]==t[j]){
index=j
str+=s[i]
break
}
}
}
console.log(str===s)
}
}); function decide(str1, str2) {
str2 = str2.split('')
str1 = str1.split('')
if (str2.length < str1.length) return false;
let num = str1.length
let first = str1.shift()
let counter = 0
for (let i = 0; i < str2.length; i++) {
if (first === str2[i]) {
counter++;
first = str1.shift()
}
}
return num === counter
}