题解 | #字符串合并处理#

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
	// Write your code here
	const [s1, s2] = (await readline()).split(" ");
	const str = s1 + s2;
	const odd = [];
	const even = [];
	for (let i = 0; i < str.length; i++) {
		if (i % 2 === 0) {
			even.push(str[i]);
		} else {
			odd.push(str[i]);
		}
	}
	odd.sort((a,b) => a < b ? -1 : 1);
	even.sort((a,b) => a < b ? -1 : 1);
	
	const combine = [];
	for (let i = 0; i < Math.ceil(str.length / 2); i++) {
		const ev = even.shift();
		const od = odd.shift();
		ev !== undefined && combine.push(ev);
		od !== undefined && combine.push(od);
	}
	
	for (let i = 0; i < combine.length; i++) {
		const char = combine[i];
		if ((char <= '9' && char >= '0') || (char >= 'a' && char <= 'f') || (char >= 'A' && char <= 'F')) {
			const binary = parseInt(char, '16').toString("2").padStart(4, "0");
			const reverseBin = binary.split('').reverse().join('');
			combine[i] = parseInt(reverseBin, '2').toString("16").toUpperCase();
		}
	}
	
	console.log(combine.join(''));
}()

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务