mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
add: leetcode 0551 solution
This commit is contained in:
@ -0,0 +1,24 @@
|
||||
package leetcode
|
||||
|
||||
func checkRecord(s string) bool {
|
||||
numsA := 0
|
||||
maxL := 0
|
||||
numsL := 0
|
||||
for _, v := range s {
|
||||
if v == 'L' {
|
||||
numsL++
|
||||
} else {
|
||||
if numsL > maxL {
|
||||
maxL = numsL
|
||||
}
|
||||
numsL = 0
|
||||
if v == 'A' {
|
||||
numsA++
|
||||
}
|
||||
}
|
||||
}
|
||||
if numsL > maxL {
|
||||
maxL = numsL
|
||||
}
|
||||
return numsA < 2 && maxL < 3
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question551 struct {
|
||||
para551
|
||||
ans551
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
type para551 struct {
|
||||
s string
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
type ans551 struct {
|
||||
ans bool
|
||||
}
|
||||
|
||||
func Test_Problem551(t *testing.T) {
|
||||
|
||||
qs := []question551{
|
||||
|
||||
{
|
||||
para551{"PPALLP"},
|
||||
ans551{true},
|
||||
},
|
||||
|
||||
{
|
||||
para551{"PPALLL"},
|
||||
ans551{false},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 551------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans551, q.para551
|
||||
fmt.Printf("【input】:%v 【output】:%v \n", p, checkRecord(p.s))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
55
leetcode/0551.Student-Attendance-Record-I/README.md
Normal file
55
leetcode/0551.Student-Attendance-Record-I/README.md
Normal file
@ -0,0 +1,55 @@
|
||||
# [551. Student Attendance Record I](https://leetcode-cn.com/problems/student-attendance-record-i/)
|
||||
|
||||
## 题目
|
||||
|
||||
You are given a string s representing an attendance record for a student where each character signifies whether the student was absent, late, or present on that day. The record only contains the following three characters:
|
||||
|
||||
- 'A': Absent.
|
||||
- 'L': Late.
|
||||
- 'P': Present.
|
||||
|
||||
The student is eligible for an attendance award if they meet both of the following criteria:
|
||||
|
||||
The student was absent ('A') for strictly fewer than 2 days total.
|
||||
|
||||
The student was never late ('L') for 3 or more consecutive days.
|
||||
|
||||
Return true if the student is eligible for an attendance award, or false otherwise.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
Input: s = "PPALLP"
|
||||
Output: true
|
||||
Explanation: The student has fewer than 2 absences and was never late 3 or more consecutive days.
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: s = "PPALLL"
|
||||
Output: false
|
||||
Explanation: The student was late 3 consecutive days in the last 3 days, so is not eligible for the award.
|
||||
|
||||
**Constraints:**
|
||||
|
||||
- 1 <= s.length <= 1000
|
||||
- s[i] is either 'A', 'L', or 'P'.
|
||||
|
||||
## 题目大意
|
||||
|
||||
给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:
|
||||
|
||||
- 'A':Absent,缺勤
|
||||
- 'L':Late,迟到
|
||||
- 'P':Present,到场
|
||||
|
||||
如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:
|
||||
|
||||
按 总出勤 计,学生缺勤('A')严格 少于两天。
|
||||
|
||||
学生 不会 存在 连续 3 天或 3 天以上的迟到('L')记录。
|
||||
|
||||
如果学生可以获得出勤奖励,返回 true ;否则,返回 false 。
|
||||
|
||||
## 解题思路
|
||||
|
||||
- 遍历字符串s求出'A'的总数量和连续'L'的最大数量
|
||||
- 比较'A'的数量是否小于2并且'L'的连续最大数量是否小于3
|
Reference in New Issue
Block a user