已解决
LeetCode 2678. 老人的数目
来自网友在路上 184884提问 提问时间:2023-10-23 14:55:13阅读次数: 84
最佳答案 问答题库848位专家为你答疑解惑
【LetMeFly】2678.老人的数目
力扣题目链接:https://leetcode.cn/problems/number-of-senior-citizens/
给你一个下标从 0 开始的字符串 details
。details
中每个元素都是一位乘客的信息,信息用长度为 15
的字符串表示,表示方式如下:
- 前十个字符是乘客的手机号码。
- 接下来的一个字符是乘客的性别。
- 接下来两个字符是乘客的年龄。
- 最后两个字符是乘客的座位号。
请你返回乘客中年龄 严格大于 60 岁 的人数。
示例 1:
输入:details = ["7868190130M7522","5303914400F9211","9273338290F4010"] 输出:2 解释:下标为 0 ,1 和 2 的乘客年龄分别为 75 ,92 和 40 。所以有 2 人年龄大于 60 岁。
示例 2:
输入:details = ["1313579440F2036","2921522980M5644"] 输出:0 解释:没有乘客的年龄大于 60 岁。
提示:
1 <= details.length <= 100
details[i].length == 15
details[i]
中的数字只包含'0'
到'9'
。details[i][10]
是'M'
,'F'
或者'O'
之一。- 所有乘客的手机号码和座位号互不相同。
方法一:模拟
按照题意,将第12个字符所对应的数字乘以10,再加上第13个字符所对应的数字,看是否大于60。统计大于60的个数并返回。
- 时间复杂度 O ( l e n ( d e t a i l s ) ) O(len(details)) O(len(details))
- 空间复杂度 O ( 1 ) O(1) O(1)
AC代码
C++
class Solution {
public:int countSeniors(vector<string>& details) {int ans = 0;for (string& d : details) {ans += (d[11] - '0') * 10 + (d[12] - '0') > 60;}return ans;}
};
Python
# from typing import Listclass Solution:def countSeniors(self, details: List[str]) -> int:return sum(((ord(d[11]) - ord('0')) * 10 + (ord(d[12]) - ord('0')) > 60) for d in details)
同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/133988079
查看全文
99%的人还看了
猜你感兴趣
版权申明
本文"LeetCode 2678. 老人的数目":http://eshow365.cn/6-22568-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!