当前位置: 首页 > news >正文

string字符集

思路:用分割的方法,标记不在字符集的字母的序号。但是我一开始的代码有错误

原始代码:

#include<stdio.h>
#include<string.h>
int main(){int T;scanf("%d",&T);while(T--){char s1[10005],s2[27];scanf("%s",s1);scanf("%s",s2);char zm[27];for(int i=0;i<26;i++){zm[i]='a'+i;}//标记int t[27]={0};for(int i=0;i<strlen(s2);i++){for(int j=0;j<26;j++){if(s2[i]==zm[j]){t[j]=1;}}}//找出不在字母集的字母的序号int cnt=0,xvhao[10005]={0};for(int i=0;i<strlen(s1);i++){for(int j=0;j<26;j++){if(s1[i]==zm[j]&&t[j]==0){xvhao[cnt]=i;cnt++;}}}int end=xvhao[0];for(int i=1;i<cnt;i++){int temp=xvhao[i]-xvhao[i-1]-1;if(temp>end) end=temp;}int d=strlen(s1);if(cnt==0) printf("%d\n",d);else if(cnt==1){if(xvhao[0]==0){int x1=strlen(s1)-1;printf("%d\n",x1);}else {int x=strlen(s1)-cnt-1;if(cnt>x){printf("%d\n",cnt);}else printf("%d\n",x);}}else printf("%d\n",end);}
}

错误在于:

当 cnt == 1 时,原代码逻辑错误,现在统一按照“计算分割点前后及中间子串长度,取最大值”的逻辑处理,不再单独处理 cnt == 1 的情况,使逻辑更清晰且正确。

◦分别计算第一个分割点之前、中间分割点之间、最后一个分割点之后的子串长度,确保所有可能的子串都被考虑到。

AC代码

#include<stdio.h>
#include<string.h>
int main(){int T;scanf("%d",&T);while(T--){char s1[10005],s2[27];scanf("%s",s1);scanf("%s",s2);char zm[27];for(int i=0;i<26;i++){zm[i]='a'+i;}// 标记字符集s2中包含的字母int t[27]={0};for(int i=0;i<strlen(s2);i++){for(int j=0;j<26;j++){if(s2[i]==zm[j]){t[j]=1;}}}// 找出s1中不在字符集s2的字母的序号int cnt=0,xvhao[10005]={0};for(int i=0;i<strlen(s1);i++){for(int j=0;j<26;j++){if(s1[i]==zm[j]&&t[j]==0){xvhao[cnt]=i;cnt++;}}}int max_len = 0;// 处理没有不在字符集内的字符的情况if(cnt==0) {max_len = strlen(s1);}// 处理有至少一个不在字符集内的字符的情况else {// 计算第一个分割点之前的子串长度int first_len = xvhao[0] - 0;max_len = first_len;// 计算中间分割点之间的子串长度for(int i=1;i<cnt;i++){int temp = xvhao[i]-xvhao[i-1]-1;if(temp>max_len) {max_len = temp;}}// 计算最后一个分割点之后的子串长度int last_len = strlen(s1) - 1 - xvhao[cnt - 1];if(last_len>max_len) {max_len = last_len;}}printf("%d\n",max_len);}return 0;
}

整体思路:(ai生成

◦ 首先标记字符集 s2 中包含的字母。

◦ 然后找出字符串 s1 中所有“不在 s2 字符集内”的字符的位置,这些位置作为分割点。

◦ 最后计算被分割点分割后的各个子串的长度,取最大值作为结果。
 

http://www.dtcms.com/a/486146.html

相关文章:

  • Linux 命令:fsck
  • 如何提升生物科技研发辅助的效率?
  • ECEF坐标转换库
  • 企业商务网被公司优化掉是什么意思
  • 网站虚拟主机购买教程专业网站设计工作室
  • 数据库管理-第376期 Oracle AI DB 23.26新特性一览(20251016)
  • 【Nature高分思路速递】 物理驱动的机器学习
  • word文档转pdf开源免费,可自定义水印
  • k8s(五)PV和PVC详解
  • 深度学习与自然语言处理
  • python 部署可离线使用的中文识别OCR(window)
  • 湖州微信网站建设网站301了不知道在哪做的
  • 请描述网站开发的一般流程图php网站开发经理招聘
  • 关于pkg-config的使用示例--g++编译过程引入第三方库(如Opencv、Qt)
  • 外贸soho先做网站wordpress如何把背景颜色调为白色
  • zk02-知识演进
  • 全自动相机在线标定方法
  • 设计模式篇之 中介者模式 Mediator
  • 卫星几何处理
  • 【个人成长笔记】在Ubuntu中的Linux系统安装sogoupinyin搜狗输入法完整版(亲测有效)
  • 3d驱动模型。如何让人物说话?什么情况下需要训练wav2lip模型,自己训练的好处是什么?操作步骤是?
  • 画册什么网站做方便做外汇著名网站
  • CRMEB标准版PHP订单发货全解析
  • Flink 窗口 Join 与区间 Join 实战详解
  • 分布式监控体系:从指标采集到智能告警的完整之道
  • 《Muduo网络库:实现one loop per thread设计模式》
  • 怎么注册网站卖东西哪有培训网站开发
  • makefile概述
  • 用R处理nc文件
  • GaussDB DN动态内存使用满导致DN主备切换