前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Leetcode-58.最后一个单词的长度 -66.加一】

【Leetcode-58.最后一个单词的长度 -66.加一】

作者头像
YoungMLet
发布2024-03-01 09:18:16
910
发布2024-03-01 09:18:16
举报
文章被收录于专栏:C++/Linux

Leetcode-58. 最后一个单词的长度

题目:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词是指仅由字母组成、不包含任何空格字符的最大子字符串。

我们的思路是,从后往前遍历,当遇到空格就跳过,当遇到第一个有效字符时,就开始进入循环统计,当再次遇到空格或者i越界访问就结束循环,返回当前ret的值;

下面看代码和注释:

代码语言:javascript
复制
		int lengthOfLastWord(char* s)
		{
		    //从后往前遍历
		    int len = strlen(s);
		    int i = len - 1;
		    int ret = 0;
		    //跳过空格
		    while (isspace(s[i]))
		    {
		        i--;
		    }
		    //统计有效字符个数,当i越界时结束循环
		    for (; i >= 0; i--)
		    {
		        //当遇到空格结束循环,返回结果
		        if (isspace(s[i]))
		        {
		            break;
		        }
		        else
		        {
		            //遇到有效字符统计
		            ret++;
		        }
		    }
		    return ret;
		}

Leetcode-66. 加一

题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。

我们的思路是,从后往前遍历,判断最后一位是否是9,若是9,如1,2,3,9,则改成0,继续判断下一位,当下一位不是9,就加1,返回这个数组,即返回1,2,4,0;若这个数组全是9,如9,9,9,9,则跳出循环后,需要开辟一个新的空间,由于需要将它初始化为0,我们可以用calloc,长度为原来的长度+1,我们只需将第一位元素改成1即可,即1,0,0,0,0;

下面看代码和注释:

代码语言:javascript
复制
		int* plusOne(int* digits, int digitsSize, int* returnSize)
		{
		    //i从最后一位开始遍历
		    int i = digitsSize - 1;
		    for (; i >= 0; i--)
		    {
		        //先将最后一位的数字+1,判断是否是10
		        digits[i] += 1;
		        if (digits[i] != 10)
		        {
		            //不等于10的话直接返回数组,*returnSize是返回数组的长度
		            *returnSize = digitsSize;
		            return digits;
		        }
		        //如果等于10,将这一位置成0,继续判断下一位
		        else if (digits[i] == 10)
		        {
		            digits[i] = 0;
		        }
		    }
		    //若数组中的数字全是9,即digits[i]+1全是10,就跳到这里
		    //我们需要开辟一个新的空间,大小为digitsSize + 1,元素均为0;
		    //只需要将第一位改成1即可,然后返回这个数组
		    int* arr = (int*)calloc(digitsSize + 1, sizeof(int));
		    assert(arr);
		    arr[0] = 1;
		    *returnSize = digitsSize + 1;
		    return arr;
		}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Leetcode-58. 最后一个单词的长度
  • Leetcode-66. 加一
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档