题解 | #合并表记录#
合并表记录
http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
写了太多的循环了,暂时未想到特别好的方法
let str;
while(str = readline()){
getCode(str);
}
function getCode(str) {
let resMap = new Map();
let keyArr = [];
let valueArr = [];
for(let i=0; i<parseInt(str); i++){
let strArr = readline().split(' ');
//判断输入值
if(parseInt(strArr[0])<0 || parseInt(strArr[0])>11111111 || parseInt(strArr[1])<1 || parseInt(strArr[1])>100000){
throw new Error('输入值错误');
}
keyArr.push(strArr[0]);
valueArr.push(strArr[1]);
}
//将值进行升序排序
for(let i=0; i<keyArr.length; i++){
for(let j=i+1;j<keyArr.length;j++){
if(parseInt(keyArr[i])>parseInt(keyArr[j])){
let tempa = keyArr[i];
keyArr[i] = keyArr[j];
keyArr[j] = tempa;
let temp = valueArr[i];
valueArr[i] = valueArr[j];
valueArr[j] = temp;
}
}
}
// console.log(keyArr)
// console.log(valueArr)
//key相同进行累加
for(let i=0; i<keyArr.length; i++){
if(resMap.has(keyArr[i])){
let newValue = resMap.get(keyArr[i]) * 1 + parseInt(valueArr[i]);
resMap.set(keyArr[i],newValue);
}else{
resMap.set(keyArr[i],valueArr[i]);
}
}
//输出
for(let obj of resMap.entries()){
console.log(obj.join(' '))
}
} 