首页 > 其他分享 >洛谷 最长最短单词 c语言 函数解决

洛谷 最长最短单词 c语言 函数解决

时间:2023-10-23 21:31:58浏览次数:34  
标签:char 洛谷 int 最短 单词 str printf letters


#include <stdio.h>
#include <string.h>
int i;
int main()
{
    int Is_letters(char a);//声明判断字母
    int bigword(char str[]);//声明最长单词    
    int minword(char str[]);//声明最短单词
    char str[20010];//str要足够大
    int t;   
    gets(str);
    t = strlen(str);
    str[t] = ' ';//要在str最后一个字符后面手动补一个‘ ’和\0 不然最后一个单词录不进去
    str[t + 1] = '\0';//

    for (i = bigword(str); Is_letters(str[i]); i++)//从最大单词的下标开始
    {
        printf("%c", str[i]);
    }
    printf("\n");
    for (i = minword(str); Is_letters(str[i]); i++)从最小单词的下标开始
    {
        printf("%c", str[i]);

    }
    return 0;

}
int Is_letters(char a)//判断是否是字母是返回1不是0
{
    if (a >= 'a' && a <= 'z' || a >= 'A' && a <= 'Z')
    {
        return 1;
    }
    else
        return 0;

}
int bigword(char str[])
{
    int flag = 1;//flag=1象征新单词的开始
    int len = 0, lenest = 0, place = 0, mplace = 0;
    for (i = 0; str[i] != '\0'; i++)
    {
        if (Is_letters(str[i]))
        {
            if (flag == 1)
            {
                flag = 0;
                place = i;
            }
            if (flag == 0)
            {
                len++;

            }
            continue;

        }
        else
        {
            flag = 1;
            if (lenest < len)
            {
                lenest = len;
                mplace = place;

            }
            len = 0;
        }

    }
    return mplace;
}
int minword(char str[])
{
    int len = 0, lenmost = 0,place,mplace,flag=1,count=0;
    for (i = 0; str[i] != '\0'; i++)
    {
        if (Is_letters(str[i]))
        {
            if (flag == 1)
            {
                place = i;
                flag = 0;
                count++;
            }
            if (flag == 0)
            {
                len++;

            }
            continue;

        }
        else
        {
            if (count == 1)//将第一个单词的单词数和下标记下
            {
                lenmost = len;
                mplace = place;
            }
            else if (lenmost > len&&flag ==0)
            {
                lenmost = len;
                mplace = place;
            }
            flag = 1;
            len = 0;

        }
        
        
    }
    return mplace;
}


标签:char,洛谷,int,最短,单词,str,printf,letters
From: https://blog.51cto.com/u_16220477/7994473

相关文章

  • 洛谷5597复读
    具体题解可以看zhy136036那一篇解释一下是如何合并树的每次都可以提取出来一个子树然后把这三棵子树重叠在一起(根对根,2号点对2号点,以此类推),就得到了这个新图然后解释一下为什么这么做是对的首先在单次操作中,至少需要把这个新树给遍历完,不然的话就会存在有些点遍历不到,即这是......
  • [Leetcode] 0821. 字符的最短距离
    821.字符的最短距离题目描述给你一个字符串s和一个字符c,且c是s中出现过的字符。返回一个整数数组answer,其中answer.length==s.length且answer[i]是s中从下标i到离它最近的字符c的距离。两个下标 i和j之间的距离为abs(i-j),其中abs是绝......
  • 洛谷-P9779 题解
    正文对于每个选择题,都有两种状态,因此总状态数为\(2^n\)。请注意初始所有选择题都不选也是一个状态,不计入贡献,因此答案为\(2^n-1\)。代码:#include<iostream>usingnamespacestd;intmain(){longlongn;cin>>n;cout<<(1<<n)-1;}提交记录。......
  • 洛谷题解 | AT_abc321_c Primes on Interval
    目录题目翻译题目描述输入格式输出格式样例#1样例输入#1样例输出#1样例#2样例输入#2样例输出#2样例#3样例输入#3样例输出#3题目简化题目思路AC代码题目翻译【题目描述】你决定用素数定理来做一个调查.众所周知,素数又被称为质数,其含义就是除了数字一和本身之外不能......
  • 洛谷 P2568 GCD
    题意:给定\(n\)求\(\displaystyle{\sum_{i=1}^n{\sum_{j=1}^n{\left[(i,j)\inprime\right]}}}\)其中\(prime\)为素数集合。\(n<10^7\)解:原式等于\[\displaystyle{\sum_{p\inprime}\sum_{i=1}^n{\sum_{j=1}^n{\left[(i,j)=p\right]}}}\]这等于\[\displa......
  • 深度优先搜索的最短路径问题
    这个简单的图,要求使用深度优先算法求出(1,1)到终点的最短路径。1、分析就目前看来,(1,1)->(1,2)->(2,2)->(2,3)->(2,4)->(3,4)->(4,4)->(4,3)和(1,1)->(2,1)->(3,1)->(4,1)->(5,1)->(5,2)->(5,3)->(4,3)这两条路径是相同的长度的最短路劲。但是,这是我们的肉眼看到的,如果是计算机计......
  • KMP模板(洛谷P3375)
    1#include<bits/stdc++.h>2usingnamespacestd;3strings1,s2;4vector<int>find_next(vector<int>next,strings)5{6inti=1,prefix=0,len=s.length();7while(i<len)8{9if(s[prefix]=......
  • 【洛谷 9240】[蓝桥杯 2023 省 B] 冶炼金属
    #[蓝桥杯2023省B]冶炼金属##题目描述小蓝有一个神奇的炉子用于将普通金属O冶炼成为一种特殊金属X。这个炉子有一个称作转换率的属性$V$,$V$是一个正整数,这意味着消耗$V$个普通金属O恰好可以冶炼出一个特殊金属X,当普通金属O的数目不足$V$时,无法继续冶炼。现......
  • 洛谷P9752
    考场上暴力100题目传送门思路考虑到\(n\)很小,于是暴力,但不是枚举每个5位数再判断,而是把所有状态的可能正解用桶存个数,然后数量为\(n\)的就是一种方案代码#include<bits/stdc++.h>usingnamespacestd;constintMaxn=10;longlongn,a[Maxn][Maxn],cnt,vis[Max......
  • 【洛谷 8665】[蓝桥杯 2018 省 A] 航班时间
    #[蓝桥杯2018省A]航班时间##题目描述小h前往美国参加了蓝桥杯国际赛。小h的女朋友发现小h上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小h对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京......