• openjudge 1.7.24 单词的长度


    OpenJudge - 24:单词的长度


    解题思路:

    1.由题可得,整行字符串中每个单词有至少一个空格分割,输出每个单词的长度

    2.首先,利用获取整行的方法得到字符串,因为首尾没有空格,这里我们首尾加上空格,预处理一下,然后开始遍历,确定单词的长度,那么就要确定单词的起始位置终止位置,用start和end来表示,如果当前位置是空格,下一位置不是空格,那么为单词的起点,即start=i+1;并且标记起点找到了,同理,如果当前位置不是空格,下一位置是空格,那么为单词的终点,end=i;同样标记终点找到了

    3.在起点和终点都找到的时候,输出长度end-start+1,思考为什么加1

    4.输出的时候注意逗号,利用打标记的方法,先输出一个数,然后再输出逗号和单词长度


    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string a;
    6. int start,end;//定义单词首尾的标记点
    7. bool flag1=0,flag2=0,flag=1;
    8. getline(cin,a);//获取整行字符串
    9. a=' '+a+' ';//首尾加空格,统一处理
    10. for(int i=0;i<=a.length()-1;i++)
    11. {
    12. if(a[i]==' '&&a[i+1]!=' ')//如果当前位置是空格,下一位置不是空格
    13. {
    14. start=i+1;//记录单词起始点
    15. flag1=1;//标记找到了起始点
    16. }
    17. if(a[i]!=' '&&a[i+1]==' ')//如果当前位置不是空格,下一位置是空格
    18. {
    19. end=i;//记录单词终止点
    20. flag2=1;//标记找到了终止点
    21. }
    22. if(flag1==1&&flag2==1)//如果起始点和终止点都找到
    23. {
    24. if(flag==1)//逗号的处理
    25. {
    26. cout<1;
    27. flag=0;
    28. }
    29. else
    30. cout<<","<1;
    31. flag1=0;//起始点取消标记
    32. flag2=0;//终止点取消标记
    33. }
    34. }
    35. return 0;
    36. }

  • 相关阅读:
    Matlab:正则表达式
    【Java进阶篇】第二章 Java数组(上篇) 一维数组
    【Shell学习笔记】Bash的模式扩展
    git使用,一点点
    【Laravel系列7.8】广播系统
    java基础10题
    应用宝应用认领签名指令
    MAUI 框架开发 将 MAUI 嵌入到 WPF 控件里
    一图看懂,阿里云飞天企业版如何支持政企数智创新
    Python二级 每周练习题22
  • 原文地址:https://blog.csdn.net/weixin_60869516/article/details/126885102