列表

详情


3168. 候诊室中的最少椅子数

给你一个字符串 s,模拟每秒钟的事件 i

返回保证每位进入候诊室的顾客都能有椅子坐的 最少 椅子数,假设候诊室最初是 空的

 

示例 1:

输入:s = "EEEEEEE"

输出:7

解释:

每秒后都有一个顾客进入候诊室,没有人离开。因此,至少需要 7 把椅子。

示例 2:

输入:s = "ELELEEL"

输出:2

解释:

假设候诊室里有 2 把椅子。下表显示了每秒钟等候室的状态。

事件 候诊室的人数 可用的椅子数
0 Enter 1 1
1 Leave 0 2
2 Enter 1 1
3 Leave 0 2
4 Enter 1 1
5 Enter 2 0
6 Leave 1 1

示例 3:

输入:s = "ELEELEELLL"

输出:3

解释:

假设候诊室里有 3 把椅子。下表显示了每秒钟等候室的状态。

事件 候诊室的人数 可用的椅子数
0 Enter 1 2
1 Leave 0 3
2 Enter 1 2
3 Enter 2 1
4 Leave 1 2
5 Enter 2 1
6 Enter 3 0
7 Leave 2 1
8 Leave 1 2
9 Leave 0 3

 

提示:

相似题目

连续字符

原站题解

去查看

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

rust 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2024-06-04 09:45:45

impl Solution {
    pub fn minimum_chairs(s: String) -> i32 {
        let mut ans = 0;
        let mut cnt = 0;
        for c in s.chars() {
            if c == 'E' {
                cnt += 1;
                ans = std::cmp::max(ans, cnt);
            } else {
                cnt -= 1;
            }
        }
        ans
    }
}

php 解法, 执行用时: 3 ms, 内存消耗: 20 MB, 提交时间: 2024-06-04 09:41:03

class Solution {

    /**
     * @param String $s
     * @return Integer
     */
    function minimumChairs($s) {
        $ans = 0;
        $cnt = 0;
        foreach ( str_split($s) as $c ) {
            if ( $c == 'E' ) {
                $cnt++;
                $ans = max($ans, $cnt);
            } else {
                $cnt--;
            }
        }
        return $ans;
    }
}

golang 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2024-06-04 09:39:51

func minimumChairs(s string) (ans int) {
	cnt := 0
	for _, c := range s {
		if c == 'E' {
			cnt++
			ans = max(ans, cnt)
		} else {
			cnt--
		}
	}
	return
}

java 解法, 执行用时: 1 ms, 内存消耗: 41.2 MB, 提交时间: 2024-06-04 09:39:34

class Solution {
    public int minimumChairs(String s) {
        int ans = 0;
        int cnt = 0;
        for (char c : s.toCharArray()) {
            if (c == 'E') {
                ans = Math.max(ans, ++cnt);
            } else {
                cnt--;
            }
        }
        return ans;
    }
}

cpp 解法, 执行用时: 2 ms, 内存消耗: 7.8 MB, 提交时间: 2024-06-04 09:39:12

class Solution {
public:
    int minimumChairs(string s) {
        int ans = 0, cnt = 0;
        for (char c : s) {
            if (c == 'E') {
                ans = max(ans, ++cnt);
            } else {
                cnt--;
            }
        }
        return ans;
    }
};

python3 解法, 执行用时: 35 ms, 内存消耗: 16.4 MB, 提交时间: 2024-06-04 09:38:56

# E => 上车,L => 下车,车上最多几个人
class Solution:
    def minimumChairs(self, s: str) -> int:
        ans = cnt = 0
        for c in s:
            if c == 'E':
                cnt += 1
                ans = max(ans, cnt)
            else:
                cnt -= 1
        return ans

上一题