当前位置: 首页> 房产> 建材 > 设计上海展会2021时间_日本十大顶尖包装_北京做网络优化的公司_网页制作免费网站制作

设计上海展会2021时间_日本十大顶尖包装_北京做网络优化的公司_网页制作免费网站制作

时间:2025/7/11 15:39:05来源:https://blog.csdn.net/bingw0114/article/details/143724541 浏览次数:0次
设计上海展会2021时间_日本十大顶尖包装_北京做网络优化的公司_网页制作免费网站制作

给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:

1、只包含1个字母(a~z, A~Z),其余必须是数字;

2、字母可以在子串中的任意位置;

如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。

输入描述:

字符串(只包含字母和数字)

输出描述:

子串的长度

示例1:

输入

abC124ACb

输出

4



作者:d17c2a49b064
链接:https://www.jianshu.com/p/edc1efd18a67
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一、问题分析

首先读题,仔细看描述中的内容,发现需求是

1.给定一个字符串,只包含字母和数字

2.按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,

3.子串要求:(1)只包含1个字母(a~z,A~Z),其余必须是数字

(2)字母可以在子串中的任何位置

4.如果找不到满足要求的子串,如全是字母或全是数字,则返回-1.

5.输入描述:字符串(只包含字母和数字)

6.输出描述:子串的长度

二、解题思路

1.设定一个布尔类型的found为false,如果找到了变成true,没找到输出-1

2.设定一个布尔类型的isletter为false,遇到字母变成true,遇到数字,构成符合要求的字符串,(字符串长度等于数字的数量加上1),最后变成false,(如果str[i]是字母那么变成true)

3.如果遇到数字,统计数字数量,判定数字前后是否有字母,如果有,则为有效子串,判断长度和count的大小,count等于比较大的那个

4.输出结果

三、具体步骤

使用的语言是C

#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>int main() {char str[1000];scanf("%s", str);int len = strlen(str);bool isletter = false;int count = 0;bool found = false;for(int i = 0; i < len; i++) {if(isalpha(str[i])) isletter = true;if(isdigit(str[i])) {int temp = 0;while(i < len && isdigit(str[i])) {i++;temp++;}if((isletter || isalpha(str[i])) && temp > count) {found = true;count = temp + 1;}isletter = false;if(isalpha(str[i])) isletter = true;}}if(found) printf("%d\n", count);else printf("-1\n");return 0;
}

关键字:设计上海展会2021时间_日本十大顶尖包装_北京做网络优化的公司_网页制作免费网站制作

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: