【编程题目 |100分】考勤信息【2021, 2022H1 考试题 2023 Q2考试题 B


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

【考勤信息】

公司用一个字符串来表示员工的出勤信息

absent:缺勤

late:迟到

leaveearly:早退

present:正常上班

现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:

缺勤不超过一次;

没有连续的迟到/早退;

任意连续7次考勤,缺勤/迟到/早退不超过3次。

输入描述

用户的考勤数据字符串,记录条数 >= 1;

输入字符串长度 < 10000;

不存在非法输入

如:

2

present

present absent present present leaveearly present absent

输出描述

根据考勤数据字符串,如果能得到考勤奖,输出”true”;否则输出”false”,

对于输入示例的结果应为:

true false


C++解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <bits/stdc++.h>
using namespace std;
vector<int> nums;
vector <string> strings;
vector <string> getstrings(const std::string &s, char delim)
{
size_t last = 0;
size_t index = s.find_first_of(delim, last);
while (index != std::string::npos) {
strings.push_back(s.substr(last, index - last));
last = index + 1;
index = s.find_first_of(delim, last);
}
if (index - last > 0) {
strings.push_back(s.substr(last, index - last));
}
return strings;
}
#include <bits/stdc++.h> using namespace std; vector<int> nums; vector <string> strings; vector <string> getstrings(const std::string &s, char delim) { size_t last = 0; size_t index = s.find_first_of(delim, last); while (index != std::string::npos) { strings.push_back(s.substr(last, index - last)); last = index + 1; index = s.find_first_of(delim, last); } if (index - last > 0) { strings.push_back(s.substr(last, index - last)); } return strings; }
#include <bits/stdc++.h>

using namespace std;
vector<int> nums;
vector <string> strings;

vector <string> getstrings(const std::string &s, char delim)
{
    size_t last = 0;
    size_t index = s.find_first_of(delim, last);
    while (index != std::string::npos) {
        strings.push_back(s.substr(last, index - last));
        last = index + 1;
        index = s.find_first_of(delim, last);
    }
    if (index - last > 0) {
        strings.push_back(s.substr(last, index - last));
    }
    return strings;
}

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

C++解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include<bits/stdc++.h>
using namespace std;
#include<bits/stdc++.h> using namespace std;
#include<bits/stdc++.h>

using namespace std;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法一


剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
n = int(input())
infos = []
res = []
for _ in range(n):
info = input().split()
infos.append(info)
n = int(input()) infos = [] res = [] for _ in range(n): info = input().split() infos.append(info)
n = int(input())
infos = []
res = []
for _ in range(n):
    info = input().split()
    infos.append(info)

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看


JAVA


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.huawei.uapcc.tm.decoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
package com.huawei.uapcc.tm.decoder; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in);
package com.huawei.uapcc.tm.decoder;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看