(36)句子中的最多单词数(37)反转两次的数字


1. 每日一言

为人务须振作精神。不可稍形颓丧。人生处世必有不如意之时。愈不得意,愈能振作,便不难人定胜天。——张元济


2. 题目(36)句子中的最多单词数

题目链接:句子中的最多单词数

一个 句子 由一些 单词 以及它们之间的单个空格组成,句子的开头和结尾不会有多余空格。

给你一个字符串数组 sentences ,其中 sentences[i] 表示单个 句子 。

请你返回单个句子里 单词的最多数目 。

  • 示例 1:
    输入:sentences = [“alice and bob love leetcode”, “i think so too”, “this is great thanks very much”]
    输出:6
    解释:
    -第一个句子 “alice and bob love leetcode” 总共有 5 个单词。
    -第二个句子 “i think so too” 总共有 4 个单词。
    -第三个句子 “this is great thanks very much” 总共有 6 个单词。
    所以,单个句子中有最多单词数的是第三个句子,总共有 6 个单词。

  • 示例 2:
    输入:sentences = [“please wait”, “continue to fight”, “continue to win”]
    输出:3
    解释:可能有多个句子有相同单词数。
    这个例子中,第二个句子和第三个句子(加粗斜体)有相同数目的单词数。

提示:
1 <= sentences.length <= 100
1 <= sentences[i].length <= 100
sentences[i] 只包含小写英文字母和 ’ ’ 。
sentences[i] 的开头和结尾都没有空格。
sentences[i] 中所有单词由单个空格隔开。

3. 解题思路

找规律,仔细阅读题目可知“单词数=空格数+1”
遍历整个字符串,通过空格数算出单词数,将该值与max值作比较,让max保持最大

最后返回max即可

4. 代码

int mostWordsFound(char** sentences, int sentencesSize) {
    int max = 0;
    int i=0,j=0;
    
    for(i=0;i<sentencesSize;i++)
    {
        int tmp = 0;//临时统计一个句子中的单词数
        for(j=0;sentences[i][j];j++)
        {
            if(sentences[i][j]==' ')
                tmp++;
        }
        tmp++;//空格数+1=单词数

		//比较谁大
        if(tmp > max)
            max = tmp;
    }
    return max;
}

5. 题目(37)反转两次的数字

题目链接:反转两次的数字

反转 一个整数意味着倒置它的所有位。

例如,反转 2021 得到 1202 。反转 12300 得到 321 ,不保留前导零 。
给你一个整数 num ,反转 num 得到 reversed1 ,接着反转 reversed1 得到 reversed2 。如果 reversed2 等于 num ,返回 true ;否则,返回 false 。

  • 示例 1:
    输入:num = 526
    输出:true
    解释:反转 num 得到 625 ,接着反转 625 得到 526 ,等于 num 。

  • 示例 2:
    输入:num = 1800
    输出:false
    解释:反转 num 得到 81 ,接着反转 81 得到 18 ,不等于 num 。

  • 示例 3:
    输入:num = 0
    输出:true
    解释:反转 num 得到 0 ,接着反转 0 得到 0 ,等于 num 。

提示:
0 <= num <= 106


6. 解题思路

6.1 法一

这题很简单,我们之前做过类似的:求数字的每一位之和
只需要在拿原来数字的第一位时,让你的sum*10就OK了~

6.2 法二

找规律,仔细观察题目,当num的个位为0且这个数不等于0时,num反转后一定不等于原数。
基于以上规律来写代码。

7. 代码

7.1 法一

int reverse(int x)
{
    int tmp = 0;
    while(x)
    {
        tmp = tmp*10 + x%10;
        x/=10;
    }
    return tmp;
}

bool isSameAfterReversals(int num) {
    return num==reverse(reverse(num));
}

7.2 法二

bool isSameAfterReversals(int num) {
    return num%10!=0 || num == 0;
}

8. 结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月临水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值