孝感网站开发培训机构,第一次做网站时是怎样的心情,企业品牌类网站,如何说服老板做网站题目
给定字符串 s 和 t #xff0c;判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些#xff08;也可以不删除#xff09;字符而不改变剩余字符相对位置形成的新字符串。#xff08;例如#xff0c;ace是abcde的一个子序列…题目
给定字符串 s 和 t 判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些也可以不删除字符而不改变剩余字符相对位置形成的新字符串。例如ace是abcde的一个子序列而aec不是。
进阶
如果有大量输入的 S称作 S1, S2, … , Sk 其中 k 10亿你需要依次检查它们是否为 T 的子序列。在这种情况下你会怎样改变代码
示例 1
输入s “abc”, t “ahbgdc” 输出true
解
class Solution {// 动态规划public boolean isSubsequence(String s, String t) {int m t.length();int n s.length();if (n 0) {return true;}boolean[][] dp new boolean[m 1][n 1];for (int i 0; i m; i) {dp[i][0] true;}for (int i 0; i m; i) {for (int j 0; j n; j) {if (t.charAt(i) s.charAt(j)) {dp[i 1][j 1] dp[i][j];} else {dp[i 1][j 1] dp[i][j 1];}}}return dp[m][n];}
}或
class Solution {// 双指针public boolean isSubsequence(String s, String t) {int m t.length();int n s.length();int i 0, j 0;while (i m j n) {if (t.charAt(i) s.charAt(j)) {j;}i;}if (j n) {return true;}return false;}
}