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;
}
相关推荐
自由生长20243 分钟前
为什么C++项目偏爱.cxx扩展名:从MongoDB驱动说起
c++
2501_940943918 分钟前
体系课\ Python Web全栈工程师
开发语言·前端·python
CSDN_RTKLIB11 分钟前
【GNU、GCC、g++、MinGW、MSVC】上
c++·gnu
rafael(一只小鱼)17 分钟前
AI运维开发平台学习
java·开发语言
b***748819 分钟前
C++在系统中的内存对齐
开发语言·c++
散峰而望24 分钟前
C++数组(三)(算法竞赛)
开发语言·c++·算法·github
q***952228 分钟前
SpringMVC 请求参数接收
前端·javascript·算法
4***149037 分钟前
C++在系统中的编译优化
开发语言·c++
mit6.82439 分钟前
[HomeKey] 握手协议 | NFC协议处理器
c++
田姐姐tmner39 分钟前
Python切片
开发语言·python