// HJ27 查找兄弟单词
// 输入:6 cab ad abcd cba abc bca abc 1
// 输出:
// 3
// bca
// 说明:abc的兄弟单词有cab cba bca,所以输出3;
// 经字典序排列后,变为bca cab cba,所以第1个字典序兄弟单词为bca
while ((line = readline())) {
let arr = line.split(" ");
let length = arr.length;
let len = arr[0]; // 待查数组长度
let xWord = arr[length - 2]; // 要找兄弟的单词
let xWordArr = [...xWord]; // 拆分兄弟为数组
let xArr = [...arr]; // 拷贝一份待处理数据
let res = []; // 储存兄弟
while (len > 0) { // 循环遍历找兄弟
if (xArr[len] != xWord && xArr[len].length == xWord.length) { // 不相同+长度相同
xWordArr.forEach((str) => {
if (xArr[len]) {
xArr[len] = xArr[len].replace(str, ""); // 消减相同字母,
} else {
xArr[len] = "#"; // 空格无效字符用#代替
}
});
if (!xArr[len]) {
res.push(arr[len]); // 是兄弟就进到数组
}
}
len--;
}
let xLen = res.sort().length; // 对兄弟排序,并获取长度
print(xLen);
let xIndex = arr[length - 1]; // 兄弟排序后坐标
if (xLen && xIndex - 1 < xLen) {
print(res[xIndex - 1]); // 存在坐标就读
}
}
07-26
1万+