解题思路
题目给定若干个用空格分隔的分辨率字符串,每个分辨率格式为 宽x高。
需要先判断每个分辨率所属的清晰度等级,再按题目要求排序后输出。
清晰度等级从低到高分别为:
720P:1280 × 720
1080P:1920 × 1080
题目内容
4K、2K、1080P、720P 清晰度定义(清晰度:宽 x 高)如下:
- 4K:3840×2160
- 2K:2560×1440
- 1080P:1920×1080
- 720P:1280×720
清晰度大小定义:720P<1080P<2K<4K
分辨率(宽 x 高)匹配清晰度的规则:
给定任意分辨率(宽 x 高),宽和高同时都大于等于清晰度的宽、高定义时,才认为满足该清晰度定义,并且优先匹配高级别清晰度。
例如:2600×1400:
- 2600<3840,1400<2160,不满足 4K 清晰度定义
- 2600>2560,1400<1440,不满足 2K 清晰度定义
- 2600>1920,1400>1080,满足 1080P 清晰度定义
因此2600×1400是 1080P 清晰度。
特别的:
- 所有低于 720P 的清晰度,都认为是720P。
- 最大清晰度为4K,即只要满足4K清晰度标准的宽、高,无论多大,都归为4K。
- 简化逻辑:不考虑交换宽高的情况,例如2500x3200,匹配为 1080P,不能匹配为 2K。
分辨率大小规则:
- 优先比较该分辨率对应的清晰度大小
- 如果清晰度一致,则比较 “面积 (宽 = 宽 × 高)”
- 如果清晰度和面积一致,则比较 “宽”
输入:n组 "宽 x 高" 字符串,空格间隔,n<10
输出:从大到小排序的 n 组 "宽 x 高" 字符串,空格间隔
样例1
输入
"3840x2160 3840x2161 3840x1080 2560x1440 1920x1080 1x1"
输出
"3840x2161 3840x2160 2560x1440 3840x1080 1920x1080 1x1"
说明
各分辨率的浩晰度对应
3840×2160:4K
3840×2161:4K
3840×1080:1080P
2560×1440:2K
1920×1080:1080P
1×1:720P
先按清晰度排序4K>2K>1080P>720P
清晰度一致时,再比较面积大小,因此最终排序输出如下:
3840×2161 3840×2160 2560×1440 3840×1080 1920×1080 1×1
样例2
输入
"2560x1440 4000x5000 5000x4000"
输出
"5000x4000 4000x5000 2560x1440"
说明
各分辨率的清晰度分类:
2560×1440:2K
4000×5000:4K
5000×4000:4K
4000×5000跟5000×4000同为 4K,且面积相等,则比较 “宽”,因此排序输出如下:
5000×4000 4000×5000 2560×1440