• C语言----------最后一个单词的大小


    1.计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

    1. #include <stdio.h>
    2. #include<string.h>
    3. int main()
    4. {
    5. char arr[5000];
    6. gets(arr);
    7. int len = strlen(arr);
    8. int count = 0;
    9. for(int i=len-1; arr[i]!=' ' && i>=0; i--)
    10. {
    11. count++;
    12. }
    13. printf("%d", count);
    14. }

    (1)这里主要是遍历数组,而且这个字符数组应该从后向前进行遍历;

    (2)srelen需要包含头文件,因为字符串的最后是斜杠0,所以i的初始值是len-1,依次从后向前进行;

    (3)判断的条件是字符既不是空格,也不能越界,所以要求i>0,不符合条件就会跳出循环;

    2.

    给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组

    数据范围: 0≤n,m≤1000≤n,m≤100,∣Ai​∣<=100,∣Bi​∣<=100

    注意:
    1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n

    2.不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了,且后台会自动将合并后的数组 A 的内容打印出来,所以也不需要自己打印

    3. A 数组在[0,m-1]的范围也是有序的

    1. /**
    2. *
    3. * @param A int整型一维数组
    4. * @param ALen int A数组长度
    5. * @param B int整型一维数组
    6. * @param BLen int B数组长度
    7. * @return void
    8. */
    9. void merge(int* A, int ALen, int m, int* B, int BLen, int n) {
    10. int i=ALen-1,j=BLen-1,k=ALen+BLen-1;
    11. while(i>=0&&j>=0)
    12. {
    13. if(A[i]>=B[j])
    14. {
    15. A[k]=A[i];
    16. k--;
    17. i--;
    18. }
    19. else {
    20. A[k]=B[j];
    21. k--;
    22. j--;
    23. }
    24. }
    25. while(i<0&&j>=0) A[k--]=B[j--];
    26. while(j<0&&i>=0) A[k--]=A[i--];
    27. }

    (1)对于AB同时进行遍历,而且是逆序遍历;

    (2)因为不用新建数组,比较完之后大的直接放到A数组里面,而且是从后向前放置,因为这个时候A数组里面还有元素,ALen+BLen-1就是容纳的所有元素的最大下标;

    (3)i<0&&j>=0说明A数组已经遍历完成,所以直接把B数组的元素放进去就可以了;

    同理:j<0&&i>=0说明B数组遍历完成,所以A数组直接放进去就可以了;因为AB本来就是有序排列的;

  • 相关阅读:
    ELF文件格式解析
    python+pytest接口自动化(16)-接口自动化项目中日志的使用 (使用loguru模块)
    2023-05-24:为什么要使用Redis做缓存?
    51LA网站访问统计使用【图文教程】
    遍历链。遍历链。
    理想汽车 x JuiceFS:从 Hadoop 到云原生的演进与思考
    python中的字符串对象
    027.Python面向对象_类&方法
    帕累托分析中的累计优化
    三维模型OBJ格式轻量化的数据压缩与性能平衡分析
  • 原文地址:https://blog.csdn.net/binhyun/article/details/136171708