首页 > 代码库 > 【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现

【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现

一、需求描写叙述

输入一个字符串,编敲代码找出这个字符串中的最长连续字符,并求出其连续出现的次数。

比如。“123444445”中的最长连续字符是4,其连续出现的次数为5;“abcddef”中的最长连续字符是d。其连续出现的次数为2。“ab”中的最长连续字符是a,其连续出现的次数为1。

 

二、算法设计

我们能够採取逐个比較字符串中各个字符的办法来获取最长连续字符及其连续出现的次数。

程序的整体流程如图1所看到的。

技术分享

图1 程序的整体流程

 

三、特殊流程考虑

在编敲代码的过程中,我们要对输入的字符串的长度及格式多做考虑。如:

1.假设输入的字符串中含有空格,那么我们仅仅处理空格之前的字符串。

2.输入的字符串中能够包括数字、字母及一些特殊的字符。但不能包括中文字符。

 

四、程序代码

 

<script src="https://code.csdn.net/snippets/1612363.js" type="text/javascript"></script>

 

五、程序測试

我们将编写好的程序“LongestContinChars.c”上传到Linux机器。并使用“gcc -g -oLongestContinChars LongestContinChars.c”命令对该程序进行编译,生成“LongestContinChars”文件。

以下对程序进行具体的測试。

1.输入字符串为“ababbba”时。程序执行情况例如以下:

Please input the string:

ababbba

InputStr=ababbba

连续出现次数最多的字符是: b

连续出现的次数是: 3

 

2.输入字符串为“123321”时。程序执行情况例如以下:

Please input the string:

123321

InputStr=123321

连续出现次数最多的字符是: 3

连续出现的次数是: 2

 

3.输入字符串为“!@##$%”时,程序执行情况例如以下:

Please input the string:

!@##$%

InputStr=!@##$%

连续出现次数最多的字符是: #

连续出现的次数是: 2

 

4.输入字符串为“abcdef”时。程序执行情况例如以下:

Please input the string:

abcdef

InputStr=abcdef

连续出现次数最多的字符是: a

连续出现的次数是: 1 


5.输入字符串为“我们123”时。程序执行情况例如以下:

Please input the string:

我们123

InputStr=我们123

我们123 has Chinese character, please check!


六、需求扩展

基于本文中的需求和程序,我们可考虑对需求进行以下扩展:

1.不区分字母的大写和小写。即假设输入的字符串为“AAAaaa”,那么程序输出最长连续字符为A或a。出现次数为6。

2.不限制字符串中不能出现中文字符,即假设输入的字符串为“窝窝头123”。那么程序输出最长连续字符为窝,出现次数为2。

 

【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现