列表

详情


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 岁。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int countSeniors(vector<string>& details) { } };

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)

上一题