class Solution {
public:
int countSeniors(vector<string>& details) {
}
};
6366. 老人的数目
给你一个下标从 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'
之一。原站题解
rust 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2023-10-23 00:02:05
impl Solution { pub fn count_seniors(details: Vec<String>) -> i32 { let mut ans = 0; for s in &details { if s[11..13].parse::<i32>().unwrap() > 60 { ans += 1; } } ans } }
javascript 解法, 执行用时: 52 ms, 内存消耗: 42.9 MB, 提交时间: 2023-10-23 00:01:50
/** * @param {string[]} details * @return {number} */ var countSeniors = function(details) { let ans = 0; for (const s of details) { ans += parseInt(s.substring(11, 13)) > 60 ? 1 : 0; } return ans; };
golang 解法, 执行用时: 4 ms, 内存消耗: 2.9 MB, 提交时间: 2023-05-14 17:12:49
func countSeniors(details []string) (ans int) { for _, s := range details { // 对于数字字符,&15 等价于 -'0',但是不需要加括号 if s[11]&15*10+s[12]&15 > 60 { ans++ } } return }
cpp 解法, 执行用时: 4 ms, 内存消耗: 13.3 MB, 提交时间: 2023-05-14 17:12:36
class Solution { public: int countSeniors(vector<string> &details) { int ans = 0; for (auto &s: details) ans += (s[11] - '0') * 10 + s[12] - '0' > 60; return ans; } };
java 解法, 执行用时: 0 ms, 内存消耗: 40.2 MB, 提交时间: 2023-05-14 17:12:22
class Solution { public int countSeniors(String[] details) { int ans = 0; for (var s : details) if ((s.charAt(11) - '0') * 10 + s.charAt(12) - '0' > 60) ans++; return ans; } }
python3 解法, 执行用时: 36 ms, 内存消耗: 16.1 MB, 提交时间: 2023-05-14 17:12:03
class Solution: def countSeniors(self, details: List[str]) -> int: return sum(d[11 : 13] > "60" for d in details)