/*<说明>
编程实现将字符串中最短的单词输出,在主函数中输入字符串,编写一个函数完成最短单词的查找
</说明>*/
#include<time.h>
#include<iostream>
using namespace std;void shortestWord(char* in)
{int i,j=0;int o[1000];for(i=0;*(in+i)!=0;i++){if(*(in+i)==' '){o[j]=i;             //o的作用是定位每一个空格的位置 通过空格位置间隔的大小判断单词的长短j++;}}j--;int z=0;int k=o[0];                  //k是最短单词的个数 初始化为第一个空格的位置 因为后面的操作没有考虑第一个int l[50];for(;j!=0;j--){    if(o[j]-o[j-1]-1<k){z=0;k=o[j]-o[j-1]-1;l[0]=j-1;}else if(o[j]-o[j-1]-1==k){z++;              //z统计有多少个最短单词l[z]=j-1;}}if(o[0]==k){for(int n=0;n<k;n++){printf("%c",*(in+n));       //如果第一个单词就是最短的 打印
        }printf(" ");}for(int m=z;m>0;m--){for(int n=1;n<=k;n++){printf("%c",*(in+o[l[m]]+n));  //打印其他最短单词
        }printf(" ");}
}
void main()
{char in[1000]="Learning a the parameters of neural networks is perhaps one of the most well studied problems within the field of machine learning. Early work on backpropagation algorithms showed that the gradient of the neural net learning objective could be computed efficiently and used within a gradient descent scheme to learn the weights of a network with multiple layers of non-linear hidden units. Unfortunately, this technique doesn’t seem to generalize well to networks that have very many hidden layers (i.e. deep networks). The common experience is that gradient-descent progresses extremely slowly on deep nets, seeming to halt altogether before making significant progress, resulting in poor performance on the training a set (under-fitting)";int a=clock();shortestWord(in);int b=clock();int c=b-a;printf("%d",c);getchar();
}

上面是自己写的代码 效果并不好 测试了一下运行效果2毫秒 太慢 而且没有考虑有连续空格的情况。

/*<书上答案>*/
#include<iostream>
#include<time.h>
using namespace std;
const int Max=200;
char *findshort(char s[])
{static char s1[Max]; //其地址要返回,所以设计为静态变量char s2[Max];int i=0,j,len1=0,len2=0;while(s[i++]!='\0');s[i-1]=' ';s[i]='\0';i=0;while(s[i]!='\0'){if(s[i]==' '&&s[i+1]!='\0'&&s[i+1]==' ') //跳过多余空格
        {i++;continue;}if(s[i]!=' ')    //提取一个单词到S2中
        {s2[len2++]=s[i];}else if(len1==0){len1=0;for(j=0;j<len2;j++)    //将S2复制到S1中s1[len1++]=s2[j];s1[len1]='\0';len2=0;}else if(len1>len2){len1=0;for(j=0;j<len2;j++)    //将S2复制到S1中s1[len1++]=s2[j];s1[len1]='\0';len2=0;}else{len2=0;}i++;}return s1;
}
void main()
{char s[Max]="asddddd gg las sdlgaw va eg aoeng a ge a e gae geoia ae x eox ge x ieg ns e a dfge qdn i am ver";cout<<"输入单词串:";int a=clock();cout<<"最短单词:"<<findshort(s)<<endl;int b=clock();int c=b-a;cout<<c<<endl;getchar();
}

这是答案中的 只打印了第一个最短单词 但是实现比自己写的代码快很多。

C++基础练习题(一): 查找最短单词相关推荐

  1. LeetCode 244. 最短单词距离 II(哈希map+set二分查找)

    文章目录 1. 题目 2. 解题 2.1 暴力超时 2.2 哈希表+set二分查找 1. 题目 请设计一个类,使该类的构造函数能够接收一个单词列表. 然后再实现一个方法,该方法能够分别接收两个单词 w ...

  2. 1.7 编程基础之字符串 25 最长最短单词 python

    """ 1.7 编程基础之字符串 25 最长最短单词 http://noi.openjudge.cn/ch0107/25/ https://blog.csdn.net/h ...

  3. python给定字符串显示奇数_字符串基础练习题80+道(原文及代码见文尾链接)

    Python 字符串基础练习题80+道 1.编写一个Python程序来计算字符串的长度. 2.编写一个Python程序来计算字符串中的字符数(字符频率). Sample String:google.c ...

  4. 讲解计算机应用基础,计算机应用基础练习题及答案知识讲解.doc

    <计算机应用基础练习题及答案知识讲解.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<计算机应用基础练习题及答案知识讲解.doc>文档请在天天文库 ...

  5. 这些Python基础练习题你会几个?

    在人工智能大火的当今,Python 作为人工智能时代的首选语言已经越来越收到追捧:但是许多非科班.零基础的小伙伴常常苦于没有合适的入门 Python 的教程而感到苦恼:本人是一名资深Python开发, ...

  6. LeetCode 245. 最短单词距离 III

    文章目录 1. 题目 2. 解题 1. 题目 给定一个单词列表和两个单词 word1 和 word2,返回列表中这两个单词之间的最短距离. word1 和 word2 是有可能相同的,并且它们将分别表 ...

  7. LeetCode 243. 最短单词距离

    文章目录 1. 题目 2. 解题 1. 题目 给定一个单词列表和两个单词 word1 和 word2,返回列表中这两个单词之间的最短距离. 示例: 假设 words = ["practice ...

  8. 计算机应用基础知道,谁知道计算机应用基础练习题的答案?

    谁知道计算机应用基础练习题的答案? 46.简述美籍匈牙利数学家冯·诺依曼(Von Neumann)在1946年提出的关于计算机的体系结构和"程序存储"的设计思想. 47.简要说明W ...

  9. 1.9 编程基础之二分查找 12 最长平台 python

    http://noi.openjudge.cn/ch0109/12/ """1.9 编程基础之二分查找 12 最长平台 http://noi.openjudge.cn/c ...

最新文章

  1. Java基础-时间复杂度计算方式
  2. spock_将Spock 1.3测试迁移到Spock 2.0
  3. 武汉科技大学计算机研究生拟录取名单,武汉科技大学2021年硕士研究生拟录取名单公示...
  4. c语言 大雨 班上多个同学准备,2015年计算机二级考试《C语言》提高练习题(7)
  5. 写日历的程序员,你必须弄懂的中国农历算法。
  6. Windows10桌面美化推荐之Dock栏
  7. 非root用户安装protobuf的python依赖到指定目录
  8. Emacs进阶之按键重映射
  9. 在java中实现类似于.net中的DataTable,请各位看看,这种方法可行吗?
  10. Js中去除数组中重复元素的4种方法
  11. matlab griddata外插,matlab griddata方法使用介绍
  12. 小程序上传大小限制问题解决
  13. Spring-01-HelloWorld
  14. SMURF(5R)-Science封面文章使用的16S新流程(二)
  15. 线性回归-----标准方程法实现线性回归方程
  16. unity_在canvas中修改text和text到底是什么
  17. 170314Css hacks
  18. 安装向日葵后亮度无法调节
  19. AI相机,请把我拍成“Angelababy ”!
  20. 寄存器(1)寄存器概念,x86寄存器种类说明及汇编代码详解

热门文章

  1. 引以为戒,特斯拉Kubernetes控制台被黑客攻击
  2. vue-cli 自定义指令directive 添加验证滑块
  3. fmt-重新格式化段落
  4. 将 Shiro 作为应用的权限基础 五:密码的加密/解密在Spring中的应用
  5. 对学习JAVA的总结 第一次课
  6. Windows Azure真实案例:微软IT-将拍卖工具搬移至云端,方便雇员捐赠
  7. UWP 查找模板中的控件
  8. webpack安装和配置
  9. 加快modelsim仿真速度的方法(原创)
  10. ALV显示红绿灯(FMnbsp;ALVnbsp;和nbsp;OOnbsp;ALV两…