/**
* 需要理解题目本质:
* 循环 -> 重复 -> 节点再生
* 循环意味着会有重复的元素;
* 所以只要有重复的元素,就可以以这个元素为据点,往其前后填充缺省的不重复的部分,形成一个循环节;
* 就像《灵笼》中可再生的噬极兽。噬极兽身体每一部分都是单独的。噬极兽的脑袋被拔了,它可以以脑袋为节点,再生身体的其他部分。
*/
所以本质就是去重之后字符串的长度。
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
while(line = await readline()){
let tokens = line.split(' ');
/**
* 需要理解题目本质:
* 循环 -> 重复 -> 节点再生
* 循环意味着会有重复的元素;
* 所以只要有重复的元素,就可以以这个元素为据点,往其前后填充缺省的不重复的部分,形成一个循环节;
* 就像《灵笼》中可再生的噬极兽。噬极兽身体每一部分都是单独的。噬极兽的脑袋被拔了,它可以以脑袋为节点,再生身体的其他部分。
*/
let arr = new Set([...tokens[0]])
console.log([...arr].length);
}
}()

京公网安备 11010502036488号