题目地址:
https://www.lintcode.com/problem/can-convert/description
给定两个字符串 s s s和 t t t,问是否可以将 s s s中删掉几个字符成为 t t t。
开两个指针分别遍历。当 s [ i ] = t [ j ] s[i]=t[j] s[i]=t[j]的时候右移 j j j,最后返回 j j j是否等于 t t t的长度。代码如下:
public class Solution {
/**
* @param s: string S
* @param t: string T
* @return: whether S can convert to T
*/
public boolean canConvert(String s, String t) {
// Write your code here
// 判空
if (s == null) {
return false;
}
int j = 0;
for (int i = 0; i < s.length() && j < t.length(); i++) {
if (s.charAt(i) == t.charAt(j)) {
j++;
}
}
return j == t.length();
}
}
时间复杂度 O ( l s ) O(l_s) O(ls),空间 O ( 1 ) O(1) O(1)。