命令行输入一组单词,用空格分隔,忽略大小写倒序排序输出。 tom Jerry mike Rose tom Rose mike jerry
时间: 2024-02-14 17:16:14 浏览: 129
好的,以下是一个Java实现的示例代码:
```java
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] words = input.split("\\s+");
Arrays.sort(words, String.CASE_INSENSITIVE_ORDER);
for (int i = words.length - 1; i >= 0; i--) {
System.out.print(words[i] + " ");
}
}
}
```
这个程序首先使用`Scanner`类从命令行读取输入。然后,使用`split`方法将输入字符串拆分为单词数组。接下来,对单词数组进行排序,使用`String.CASE_INSENSITIVE_ORDER`进行不区分大小写的排序。最后,遍历单词数组并倒序输出每个单词。对于输入字符串`"tom Jerry mike Rose"`,程序将输出`"tom Rose mike Jerry "`。
相关问题
输入格式: 第一行输入一个正整数 n,表示人数。 接下来的 n 行,每行输入一个人的姓名和年龄,中间用空格分隔。 输出格式: 按照年龄从小到大排序输出,年龄相同时按照姓名的字典序从小到大排序输出。 输入样例: 3 Tom 18 Jerry 20 Lucy 18 输出样例:
n = int(input())
lst = []
for i in range(n):
name, age = input().split()
age = int(age)
lst.append((name, age))
lst.sort(key=lambda x: (x[1], x[0]))
for name, age in lst:
print(name, age)
某公司现需要统计员工出勤次数,具体要求如下: 输入样例: Mark Tom Ivor Mark Ivor Mark Jack end 输入样例解释: 每行表示某天出勤的员工名单,以空格间隔。 end表示输入结束 输出样例: Mark 3 Ivor 2 Tom 1 Jack 1 输出样例解释: 按出勤天数倒序输出,若出勤次数相同则按输入顺序输出(即先输入的先输出,样例中Tom比Jack先输入,因此先输出Tom)。每名员工占一行,格式为员工名+空格+出勤次数
这道题目可以使用字典来解决,遍历每一行输入的员工名单,统计每个员工出现的次数,最后按照出勤次数倒序并按输入顺序输出即可。
以下是Python代码实现:
```python
attendance = {} # 员工出勤次数字典
while True:
names = input().split() # 输入员工名单
if names[0] == 'end':
break
for name in names:
attendance[name] = attendance.get(name, 0) + 1 # 统计员工出勤次数
# 按照出勤次数倒序排序并输出结果
for name, count in sorted(attendance.items(), key=lambda x: (-x[1], list(input().split()).index(x[0]))):
print(name, count)
```
在输入时,我们使用 `input().split()` 来将一行输入按照空格分割成一个员工名单列表,然后遍历每个员工名字,使用字典的 `get` 方法来统计该员工出现的次数,并将其存储到 `attendance` 字典中。
在输出时,我们使用 Python 内置函数 `sorted`,并根据字典值(即出勤次数)进行倒序排序。由于当出勤次数相同时要按照输入顺序输出,因此我们需要在排序时传入一个 `key` 函数,该函数返回一个元组,第一个元素是员工名字,第二个元素是员工名字在输入中的位置,这样就能保证当出勤次数相同的员工时,优先按照输入顺序输出。
阅读全文