xtuoj string

题目

思路

题目的意思是找出最长子列,该子列的字符必须都是字符集里面的。

对于这个问题我们先记录字符集所有出现过的元素,然后我们再逐个处理字符串的字符。如果当前字符是字符集里面的,那么cnt++,并且用一个max记录最长长度,如果cnt>max,那么max设置为cnt;如果不是里面的,那么相当于中断了,cnt设置为0。

代码

cpp 复制代码
#include<stdio.h>
#include<string.h>

char str[10010],s[30];

int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		scanf("%s%s",str,s);
		int f[26]={0};
		int lenS=strlen(s);
		int lenStr=strlen(str);
		for(int i=0;i<lenS;i++) f[s[i]-'a']=1;
		
		int max=0;
		int cnt=0;
		for(int i=0;i<lenStr;i++){
			if(f[str[i]-'a']){
				cnt++; 
				if(cnt>max) max=cnt;
			}else cnt=0;
		}
		printf("%d\n",max);
	}
	return 0;
}
相关推荐
千金裘换酒7 小时前
LeetCode 移动零元素 快慢指针
算法·leetcode·职场和发展
方璧7 小时前
限流的算法
java·开发语言
wm10437 小时前
机器学习第二讲 KNN算法
人工智能·算法·机器学习
NAGNIP7 小时前
一文搞懂机器学习线性代数基础知识!
算法
NAGNIP7 小时前
机器学习入门概述一览
算法
Hi_kenyon7 小时前
VUE3套用组件库快速开发(以Element Plus为例)二
开发语言·前端·javascript·vue.js
曲莫终7 小时前
Java VarHandle全面详解:从入门到精通
java·开发语言
byxdaz8 小时前
C++内存序
c++
iuu_star8 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法