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;// 匹配成功位数 是否和 模式串长度一致
	}

}
相关推荐
while(1){yan}几秒前
网络协议TCP
java·网络·网络协议·tcp/ip·青少年编程·电脑常识
一过菜只因5 分钟前
JavaWeb后端(spring--boot)
java·开发语言
@我漫长的孤独流浪13 分钟前
程序综合实践第十二周-二叉树
算法·深度优先·图论
啊阿狸不会拉杆14 分钟前
《数字图像处理》第 3 章 - 灰度变换与空间滤波
图像处理·人工智能·算法·计算机视觉·数字图像处理
yuyu_030414 分钟前
SOHE智能厨余垃圾处理系统
java·vue
执笔论英雄14 分钟前
【RL 】Ray 支持RDMA
算法
IT枫斗者15 分钟前
Netty的原理和springboot项目整合
java·spring boot·后端·sql·科技·mysql·spring
Keep_Trying_Go15 分钟前
统一的人群计数训练框架(PyTorch)——基于主流的密度图模型训练框架
人工智能·pytorch·python·深度学习·算法·机器学习·人群计数
(●—●)橘子……16 分钟前
记力扣557.反转字符串中的单词 练习理解
算法·leetcode·职场和发展
Edward1111111117 分钟前
普通java项目转为maven项目 J文件后缀.java变C文件
java·开发语言·maven