标题:如何在程序中输入一段文本并统计其中出现次数最多的回文数
只看楼主
llllc
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2020-12-21
结帖率:50%
已结贴  问题点数:10 回复次数:7 
如何在程序中输入一段文本并统计其中出现次数最多的回文数
  输入一段文本,统计中间出现次数最多的回文数。回文数是类似12321,1221这样,顺序和逆序相同的十进制无符号整数,不考虑符号,长度至少为2,不能以0开始。另外,不考虑数的一部分,即abc1232abc中的232不是一个单独的数。(数据可能超过32位)
  输入数据为一段文本,可能包含若干行,直到文件末尾(EOF)为止。即只有一组测试用例。对于每一组输入数据,输出出现次数最多的回文数和它出现的次数。如果有多个,按从小到大输出,每个数占一行。如果没有, 输出None。
  比如:
  Thin34543king 121 is8 interesting121.
  I like121 thinking23.
  输出应该是:
  121 3

搜索更多相关主题的帖子: 文本 回文 输入 出现 次数 
2020-12-21 20:42
llllc
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2020-12-21
得分:0 
初学C语言,最好能讲一下思路 谢谢各位大佬
2020-12-21 20:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:3 
我都怀疑这不是C语言的题目,
因为没限定回文最大长度,你就得需要一个类似 std::string 的容器;
因为没限定回文最大数目, 若想高效查找字符串,你得有一个类似 std::map/hash_map 的容器。即使不要高效,你也得有个 std::vector/list 之类的容器。
2020-12-21 21:12
llllc
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2020-12-21
得分:0 
回复 3楼 rjsp
题目确实没有说回文最大长度和最大数目,如果可以的话自己设定一个可以实现吗
2020-12-21 22:01
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:3 
回复 4楼 llllc
题目还没有指明求字符的回文,还是数字的回文,那就简单点,算是求数字的回文吧:
先建立数组a[256],存放输入的字符串;
建立一个二维数组b[][20],用于存放数字字符串;
将数字从字符中分离出来,存放于二维数组里,一行一个数字字符串;
调用函数(如下),判断每一行的数字是否是回文字符串;
输出结果;

程序代码:
// 判断字符串是否为回文字符串
int huiwen(char *p)
{
    int k = 0;
    char *q;
    while (*p != NULL)
    {
        k++;             // 计算字符串长度
    }

    q = p + k;
    while (*p != '\0')
    {
        if (*p == *q)
        {
            p++;
            q--;
        }
        else
            return -1;

    }
    return 1;
}
2020-12-22 01:44
llllc
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2020-12-21
得分:0 
回复 5楼 风过无痕1989
怎么将数字从字符串中分离出来再存进二维数组里呢?
2020-12-22 08:34
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:3 
回复 6楼 llllc
遍历字符串,用isdigit判断是否数字
2020-12-22 13:58
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
得分:3 
这是读文件fopen 首先打开文件按字符读入,循环直到EOF为止
      如何处理呢
       定义一个长度超32的字符数组
       是数字的就存入数组,直到遇到非数字
       暂停判断这一串是否为回文数,如果是就把回文数存在一个指针数组内
       要么做个链表存储起来,记得此记录数要加1。
       做个结构体比较好  元素是 字符数组指针和出现次数
      清空字符数组继续读下去
       若读到再次读到回文数,就去链表查找,并在已有的回文数出现得次数加1
      如此反复
     遇到EOF关闭文件
       遍历链表输出结果

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2020-12-23 01:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504333-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.231276 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved