• hdoj 1004 学习思路


    hdoj 1004题目大概讲的是,将输入的字符串根据输入次数多少,输出出现次数最多的字符串。

    题目逻辑很简单,就是需要选择相应的数据结构,看了别人提交的discuss,明显发现可以使用多种数据结构解这道题。

    其实我本是打算用结构体来解的,但是结构体还是不太熟,并又看了别人的代码就不在自行考虑了。

    关键是用两个数组,一个是 char boloon[1000][16] ,另一个是 int num[1000] , 

    取1000是因为输入要求N(0<N ≤ 1000), 16 是因为输入字符串大小在0~15,再加上,总共16.

    在运行程序时,将写入的字符串存入 boloon[i], 相应的s[i] 加一,然后将此次输入的字符串与之前已经存入所有字符穿相比,出现过相同的一次就将num[i]加一,

    最后求出最大的num[i]的最大的i, 出现次数最多的就是 boloon[i]

    参考代码

    http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=25780&messageid=1&deep=0

    我的代码

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {
        int i, n, j, max, num[1000];
        char boloon[1000][16];
    
        while (scanf("%d", &n) != EOF){
            if (n) {
                for (i = 0; i < n; i++) {
                    num[i] = 0;
                    scanf("%s", boloon[i]);
                    num[i] += 1;
                    for (j = 0; j < i; j++) {
                        if (strcmp(boloon[i], boloon[j]) == 0) {
                            num[i] += 1;
                        }
                    }
                }
    
                max = 0;
                for (i = 0; i < n; i++) {
                    if (max < num[i]) {
                        max = num[i];
                        j = i;
                    }
                }
                printf("%s
    ", boloon[j]);
    
            }
        }
    }
  • 相关阅读:
    JavaWeb(二)会话管理之细说cookie与session
    JavaWeb(一)Servlet中乱码解决与转发和重定向的区别
    JavaWeb(一)Servlet中的request与response
    JavaWeb(一)Servlet中的ServletConfig与ServletContext
    JavaWeb(一)之细说Servlet
    OOAD-设计模式(一)概述
    异常处理升级版
    MySQL优化原理
    hadoop 有那些发行版本
    centos7 安装搜狗输入法
  • 原文地址:https://www.cnblogs.com/young-ma/p/5728025.html
Copyright © 2020-2023  润新知