设计一个函数,判断字符串s是否能够在删除一些字符后得到字符串t(删除字符时不能改变s中其他字符的相对位置),例如:"abcd"可以在删除'b'和'd'的情况下得到"ac" public class StringDemo { public static void main(String[] args) { System.out.println(getString("abcdefg", "cdf")); //输出:true System.out.println(getString("abcdefg", "cda")); //输出:false } public static boolean getString(String s, String t){ }}
时间: 2023-06-24 08:05:20 浏览: 106
可以使用双指针来解决这个问题。我们定义两个指针i和j分别指向字符串s和t的开头,然后开始进行比较。如果s[i] == t[j],则i和j都向后移动一位;如果s[i] != t[j],则只移动i指针。最后,如果j指针移动到了t的末尾,说明字符串t可以在删除一些字符的情况下得到字符串s,返回true;否则,返回false。
下面是实现代码:
```java
public static boolean getString(String s, String t) {
int i = 0, j = 0;
while (i < s.length() && j < t.length()) {
if (s.charAt(i) == t.charAt(j)) {
i++;
j++;
} else {
i++;
}
}
return j == t.length();
}
```
测试代码:
```java
public static void main(String[] args) {
System.out.println(getString("abcdefg", "cdf")); //输出:true
System.out.println(getString("abcdefg", "cda")); //输出:false
}
```
阅读全文