Welcome to Subscribe On Youtube
2678. Number of Senior Citizens
Description
You are given a 0indexed array of strings details
. Each element of details
provides information about a given passenger compressed into a string of length 15
. The system is such that:
 The first ten characters consist of the phone number of passengers.
 The next character denotes the gender of the person.
 The following two characters are used to indicate the age of the person.
 The last two characters determine the seat allotted to that person.
Return the number of passengers who are strictly more than 60 years old.
Example 1:
Input: details = ["7868190130M7522","5303914400F9211","9273338290F4010"] Output: 2 Explanation: The passengers at indices 0, 1, and 2 have ages 75, 92, and 40. Thus, there are 2 people who are over 60 years old.
Example 2:
Input: details = ["1313579440F2036","2921522980M5644"] Output: 0 Explanation: None of the passengers are older than 60.
Constraints:
1 <= details.length <= 100
details[i].length == 15
details[i] consists of digits from '0' to '9'.
details[i][10] is either 'M' or 'F' or 'O'.
 The phone numbers and seat numbers of the passengers are distinct.
Solutions
Solution 1: Traversal and Counting
We can traverse each string $x$ in details
and convert the $12$th and $13$th characters (indexed at $11$ and $12$) of $x$ to integers, and check if they are greater than $60$. If so, we add one to the answer.
After the traversal, we return the answer.
The time complexity is $O(n)$, where $n$ is the length of details
. The space complexity is $O(1)`.

class Solution { public int countSeniors(String[] details) { int ans = 0; for (var x : details) { int age = Integer.parseInt(x.substring(11, 13)); if (age > 60) { ++ans; } } return ans; } }

class Solution { public: int countSeniors(vector<string>& details) { int ans = 0; for (auto& x : details) { int age = stoi(x.substr(11, 2)); ans += age > 60; } return ans; } };

class Solution: def countSeniors(self, details: List[str]) > int: return sum(int(x[11:13]) > 60 for x in details)

func countSeniors(details []string) (ans int) { for _, x := range details { age, _ := strconv.Atoi(x[11:13]) if age > 60 { ans++ } } return }

function countSeniors(details: string[]): number { let ans = 0; for (const x of details) { const age = parseInt(x.slice(11, 13)); if (age > 60) { ++ans; } } return ans; }

impl Solution { pub fn count_seniors(details: Vec<String>) > i32 { let mut ans = 0; for s in details.iter() { if let Ok(age) = s[11..13].parse::<i32>() { if age > 60 { ans += 1; } } } ans } }