对于给定的正整数 n ,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
在一行上输入一个正整数 n(1≦n≦108) 代表给定的整数。
保证 n 的最后一位不为 0 。
输出描述:
在一行上输出一个整数,代表处理后的数字。
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
while ((line = await readline())) {
const b = [...new Set(line.split("").reverse().join(""))];
console.log(b.join(""));
}
})();
line.split(''):将字符串line按字符分割成数组。例如,如果line = "abc", 那么line.split('')会得到['a', 'b', 'c']。reverse():将数组的元素顺序颠倒。例如,['a', 'b', 'c']被reverse()处理后会变成['c', 'b', 'a']。join(''):将数组重新合并成一个字符串,数组中的每个字符用空字符串连接。例如,['c', 'b', 'a']被join('')处理后变成"cba"。new Set():通过Set来去除字符串中重复的字符。Set是一种集合类型,它会自动去除重复的元素。因此,如果字符串"cbaabc"被Set处理后,会变成一个去重的集合,Set中的字符会是{'c', 'b', 'a'},顺序是基于它们第一次出现的顺序。[...new Set(...)]:通过扩展运算符...将Set转换回数组。此时,Set中的字符会按它们第一次出现的顺序排列。
总结一下,代码的作用是:
- 对字符串
line进行反转。 - 去掉反转后的字符串中的重复字符。
- 将结果保存在数组
b中。
例如:
-
如果
line = "abcabc", 代码的执行过程是:split('')结果是['a', 'b', 'c', 'a', 'b', 'c']reverse()结果是['c', 'b', 'a', 'c', 'b', 'a']join('')结果是"cbaCBA"Set去重后的结果是{'c', 'b', 'a'}- 扩展运算符生成数组,结果是
['c', 'b', 'a']