華為OD機試- 選修課
?現(xiàn)有兩門選修課,每門選修課都有一部分學(xué)生選修,每個學(xué)生都有選修課的成績,需要你找出同時選修了兩門選修課的學(xué)生,先按照班級進行劃分,班級編號小的先輸出,每個班級按照兩門選修課成績和的降序排序,成績相同時按照學(xué)生的學(xué)號升序排序。
輸入描述
第一行為第一門選修課學(xué)生的成績
第二行為第二門選修課學(xué)生的成績,每行數(shù)據(jù)中學(xué)生之間以英文分號分隔,每個學(xué)生的學(xué)號和成績以英文逗號分隔,學(xué)生學(xué)號的格式為8位數(shù)字(2位院系編號+入學(xué)年份后2位+院系內(nèi)部1位專業(yè)編號+所在班級3位學(xué)號),學(xué)生成績的取值范圍為[0,100]之間的整數(shù),兩門選修課選修學(xué)生數(shù)的取值范圍為[1-2000]之間的整數(shù)。
輸出描述
同時選修了兩門選修課的學(xué)生的學(xué)號,如果沒有同時選修兩門選修課的學(xué)生輸出NULL,否則,先按照班級劃分,班級編號小的先輸出,每個班級先輸出班級編號(學(xué)號前五位),然后另起一行輸出這個班級同時選修兩門選修課的學(xué)生學(xué)號,學(xué)號按照要求排序(按照兩門選修課成績和的降序,成績和相同時按照學(xué)號升序),學(xué)生之間以英文分號分隔。
示例1
輸入:
01202021,75;01201033,95;01202008,80;01203006,90;01203088,100
01202008,70;01203088,85;01202111,80;01202021,75;01201100,88
輸出:
01202
01202008;01202021
01203
01203088
說明:
同時選修了兩門選修課的學(xué)生01202021、01202008、01203088,這三個學(xué)生兩門選修課的成績和分別為150、150、185, 01202021、01202008屬于01202班的學(xué)生,按照成績和降序,成績相同時按學(xué)號升序輸出的結(jié)果為01202008:01202021,01203088屬于01203班的學(xué)生,按照成績和降序,成績相同時按學(xué)號升序輸出的結(jié)果為01203088,01202的班級編號小于01203的班級編號,需要先輸出。
示例2
輸入:
01201022,75;01202033,95;01202018,80;01203006,90;01202066,100
01202008,70;01203102,85;01202111,80;01201021,75;01201100,88
輸出:
NULL
說明:
沒有同時選修了兩門選修課的學(xué)生,輸出NULL。
Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/130790082
Python實現(xiàn):https://renjie.blog.csdn.net/article/details/130924586
C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/130924508
JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/130924541
C實現(xiàn):https://renjie.blog.csdn.net/article/details/129190260