392.判断子序列(Java)

目录

题目描述:

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。

输入:

s = "abc", t = "ahbgdc"

输出:

true

  • 0 < = s . l e n g t h < = 100 0 <= s.length <= 100 0<=s.length<=100
  • 0 < = t . l e n g t h < = 1 0 4 0 <= t.length <= 10^4 0<=t.length<=104
  • 两个字符串都只由小写字符组成。

代码实现:

java 复制代码
public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s = "b";
		String t = "abc";
		System.out.println(isSubsequence(s, t));//true
	}

	public static boolean isSubsequence(String s, String t) {
		// 判断s是否为t的子序列
		int len = s.length();// 子序列的长度
		int index = 0;// 匹配成功的位数
		if (len > 0) {// 防止子序列越界
			for (int i = 0; i < t.length(); i++) {
				char c = t.charAt(i);// 获取子序列中的每一个字符
				if (index == len) {
					break;// 防止越界
				}
				if (c == s.charAt(index)) {
					index++;// 如果当前子序列的字符与主串匹配,指针加一
				}
			}
		}
		return index == len;// 匹配成功位数 是否和 模式串长度一致
	}

}
相关推荐
云闲不收几秒前
垃圾回收——三色标记法(golang使用)
jvm·算法·golang
菜鸟江多多9 分钟前
32x32热成像高斯滤波图像处理
图像处理·单片机·算法
秋野酱10 分钟前
基于SpringBoot酒店管理系统设计和实现(源码+文档+部署讲解)
java·spring boot·后端
狗蛋不是狗19 分钟前
Python 实现的运筹优化系统代码详解(0-1规划背包问题)
python·数学建模·背包问题·0-1规划·狗蛋不是狗
阳洞洞20 分钟前
二叉树的层序遍历
数据结构·算法·leetcode·二叉树遍历·广度优先搜索
今天也要早睡早起21 分钟前
代码随想录算法训练营Day32| 完全背包问题(二维数组 & 滚动数组)、LeetCode 518 零钱兑换 II、377 组合总数 IV、爬楼梯(进阶)
数据结构·c++·算法·leetcode·动态规划·完全背包
在下木子生23 分钟前
mac如何将jar包上传到maven中央仓库中
java·macos·maven·jar
写代码的小王吧42 分钟前
【网络安全】 防火墙技术
java·python·安全·web安全·网络安全·docker
XiaoLeisj42 分钟前
【MyBatis】深入解析 MyBatis:关于注解和 XML 的 MyBatis 开发方案下字段名不一致的的查询映射解决方案
xml·java·spring boot·spring·java-ee·tomcat·mybatis
x66ccff1 小时前
[特殊字符] Pandas 常用操作对比:Python 运算符 vs Pandas 函数
开发语言·python·pandas