C语言 · 最长单词

算法提高 最长单词

时间限制:1.0s   内存限制:512.0MB

  编写一个函数,输入一行字符,将此字符串中最长的单词输出。
  输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出最先出现的。

样例输入

I am a student

样例输出

student

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define max 100000
 4 int is_zimu(char ch){//判断字符ch是否为字母:是返回1,否则返回0
 5     if(ch>=‘a‘ && ch<=‘z‘ || ch>=‘A‘ && ch<=‘Z‘)
 6         return 1;
 7     else
 8         return 0;
 9 }
10 int main(){
11     char str[max];
12     int len=0,length=0;
13     int point,place;
14     gets(str);
15     int flag=1;
16     for(int i=0;i<=strlen(str);i++){
17         if(!is_zimu(str[i])){//当前字符不是字母
18             if(len>length){
19                 length=len;//记录上一个单词长度
20                 place=point;
21             }
22             flag=1;//标记置1
23             len=0;//单词长度清0,接下来记录下一个单词长度
24         }else{
25             if(flag)
26                 point=i;//存放当前字母元素的下标
27             len++;//单词长度+1
28             flag=0;//标记置0
29         }
30     }
31     for(int i=place;i<place+length;i++){
32         printf("%c",str[i]);
33     }
34     return 0;
35 }
时间: 2024-07-28 20:13:04

C语言 · 最长单词的相关文章

C语言可变长参数实现原理

博客:存储系统研究 微博:http://weibo.com/u/2203007022             (1)      C语言可变参数 我们可以从C语言的printf得出可变参数的作用,printf函数的原型如下: int printf ( const char * format, ... ); 通过使用可变个数参数,就是传入的参数个数是可变的,如printf需要根据format实参传入多个实参. (2)      C语言可变参数的使用 下面一个函数myprintf是自己实现的比较简单的

C 语言变长数组 struct 中 char data[0] 的用法

1.结构体内存布局(padding) 为了让CPU能够更舒服地访问到变量,struct中的各成员变量的存储地址有一套对齐的机制.这个机制概括起来有两点:第一,每个成员变量的首地址,必须是它的类型的对齐值的整数倍,如果不满足,它与前一个成员变量之间要填充(padding)一些无意义的字节来满足:第二,整个struct的大小,必须是该struct中所有成员的类型中对齐值最大者的整数倍,如果不满足,在最后一个成员后面填充. The following typical alignments are va

(算法)最长单词

题目: 给定一组单词,找出其中的最长单词,且该单词由这组单词中的其他单词组成. 思路: 首选将单词按照字符串大小从大到小排序,然后依次判断该单词是否由其他单词组成. 将单词保存在散列表中,这样容易查找. 判断单词组成:依次切分为左右两个字符串,然后递归查找判断.(为避免重复计算,在每一次递归中都保存中间结果,即把是否可以组成单词的结果都保存在散列表中) 代码: #include<iostream> #include<vector> #include<map> #incl

lintcode 容易题:Longest Words 最长单词

题目: 最长单词 给一个词典,找出其中所有最长的单词. 样例 在词典 { "dog", "google", "facebook", "internationalization", "blabla" } 中, 最长的单词集合为 ["internationalization"] 在词典 { "like", "love", "hate"

CSS3让长单词与URL地址自动换行——word-wrap属性

div{ word-wrap:break-word; } word-wrap属性可以使用的属性值为normal与break-word两个.使用normal属性值时浏览器默认处理,只在半角空格或者连字符的地方进行换行.使用break-word时浏览器可在长单词或URL地址内部进行换行. 目前,word-wrap属性得到了所有浏览器的支持.

C语言变长数组 struct中char data[0]的用法

版权声明:本文为博主原创文章,未经博主允许不得转载. [cpp] view plain copy print? 今天在看一段代码时出现了用结构体实现变长数组的写法,一开始因为忘记了这种技术,所以老觉得作者的源码有误,最后经过我深思之后,终于想起以前看过的用struct实现变长数组的技术.下面是我在网上找到的一篇讲解很清楚的文章. 在实际的编程中,我们经常需要使用变长数组,但是C语言并不支持变长的数组.此时,我们可以使用结构体的方法实现C语言变长数组. struct MyData { int nL

英文长单词断行 word-break VS word-wrap

你真的了解word-wrap和word-break的区别吗? 这两个东西是什么,我相信至今还有很多人搞不清,只会死记硬背的写一个word-wrap:break-word;word-break:break-all;这样的东西来强制断句,又或者是因为这两个东西实在是太拗口了,长得又差不多,导致连背都很难背下来. 那它们到底是什么呢?我在mozilla的官网上找到如下的解释: word-wrap word-break 我们看到两个解释中都出现了 break lines within words 这样的

【北航软件工程】最长单词链

Part.1 github链接 Part.2 PSP2.1 Personal Software Process Stages 预计耗时(分钟) 实际耗时(分钟) Planning 计划 15 10 PSP2.1 估计这个任务需要多少时间 15 10 Development 计划 1120 1360 · Analysis 需求分析 (包括学习新技术) 120 150 · Design Spec 生成设计文档 30 30 · Design Review 设计文档复审 10 10 · Coding S

返回最长单词的字母个数

返回最长单词的字母个数 Javascript 这种写法太清晰了. 使用了 Math的 max. 用了 Array 的 map 迭代. 用了回调. 用了字符串的分隔. return Math.max.apply(Math, str.split(" ").map(function(el) { return el.length;})); 原文地址:https://www.cnblogs.com/F4NNIU/p/10677107.html