某公司现需要统计员工出勤次数,具体要求如下: 输入样例: Mark Tom Ivor Mark Ivor Mark Jack end 输入样例解释: 每行表示某天出勤的员工名单,以空格间隔。 end表示输入结束 输出样例: Mark 3 Ivor 2 Tom 1 Jack 1
时间: 2024-03-22 14:39:32 浏览: 290
好的,这是一个简单的统计问题。我可以为您提供以下Python代码实现:
```
employee_attendance = {}
while True:
attendance_list = input().split()
if attendance_list[0] == 'end':
break
for employee in attendance_list:
if employee in employee_attendance:
employee_attendance[employee] += 1
else:
employee_attendance[employee] = 1
for employee, attendance_count in employee_attendance.items():
print(employee, attendance_count)
```
在这个代码中,我们使用了一个字典employee_attendance来存储每个员工的出勤次数。我们首先读取输入,然后对于每个员工,我们检查是否已经在字典中存在,如果存在,我们增加他们的出勤次数,如果不存在,我们将他们添加到字典中并设置他们的出勤次数为1。最后,我们遍历字典并打印每个员工的出勤次数。
相关问题
java某公司现需要统计员工出勤次数,具体要求如下: 输入样例: Mark Tom Ivor Mark Ivor Mark Jack end 输入样例解释: 每行表示某天出勤的员工名单,以空格间隔。 end表示输入结束 输出样例: Mark 3 Ivor 2 Tom 1 Jack 1
好的,以下是Java实现此问题的代码:
```java
import java.util.*;
public class EmployeeAttendance {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Map<String, Integer> employeeAttendance = new HashMap<>();
while (true) {
String[] attendanceList = input.nextLine().split(" ");
if (attendanceList[0].equals("end")) {
break;
}
for (String employee : attendanceList) {
if (employeeAttendance.containsKey(employee)) {
employeeAttendance.put(employee, employeeAttendance.get(employee) + 1);
} else {
employeeAttendance.put(employee, 1);
}
}
}
for (Map.Entry<String, Integer> entry : employeeAttendance.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
```
在这个Java代码中,我们使用了一个HashMap对象employeeAttendance来存储每个员工的出勤次数。我们首先读取输入,然后对于每个员工,我们检查是否已经在Map中存在,如果存在,我们增加他们的出勤次数,如果不存在,我们将他们添加到Map中并设置他们的出勤次数为1。最后,我们遍历Map并打印每个员工的出勤次数。
用JAVA编写某公司现需要统计员工出勤次数,具体要求如下: 输入样例: Mark Tom Ivor Mark Ivor Mark Jack end 输入样例解释: 每行表示某天出勤的员工名单,以空格间隔。 end表示输入结束 输出样例: Mark 3 Ivor 2 Tom 1 Jack 1 输出样例解释: 按出勤天数倒序输出,若出勤次数相同则按输入顺序输出(即先输入的先输出,样例中Tom比Jack先输入,因此先输出Tom)。每名员工占一行,格式为员工名+空格+出勤次数
好的,这是一个简单的统计出勤次数的需求,可以使用Java的HashMap来实现。以下是示例代码:
```java
import java.util.*;
public class AttendanceCounter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<String, Integer> attendanceMap = new HashMap<>();
while (scanner.hasNext()) {
String line = scanner.nextLine();
if (line.equals("end")) {
break;
}
String[] employeeNames = line.split(" ");
for (String name : employeeNames) {
attendanceMap.put(name, attendanceMap.getOrDefault(name, 0) + 1);
}
}
List<Map.Entry<String, Integer>> attendanceList = new ArrayList<>(attendanceMap.entrySet());
attendanceList.sort((e1, e2) -> e2.getValue() - e1.getValue());
for (Map.Entry<String, Integer> entry : attendanceList) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
```
代码解释:
1. 首先创建一个 HashMap 来存储员工名字和出勤次数的映射关系。
2. 然后使用 while 循环不断读取用户输入,直到输入 end 为止。
3. 对于每一行输入,使用 split 方法将员工名字拆分出来,并遍历拆分出来的员工名字。
4. 对于每一个员工名字,使用 getOrDefault 方法从 HashMap 中取出对应的出勤次数并加一,然后再将其存回 HashMap 中。
5. 循环结束后,将 HashMap 中的映射关系转化为 List,并按照出勤次数倒序排序。
6. 最后遍历排序后的 List,并输出每个员工的名字和出勤次数。
希望这个示例代码能够帮到您。
阅读全文