你可以认为 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 }