https://www.acwing.com/problem/content/description/774/
let buf="";
process.stdin.on("readable",function(){
let chunk=process.stdin.read();
if(chunk) buf+=chunk.toString();
});
process.stdin.on("end",function(){
let st=[];
let i;
for(i=0;i<26;i++) //记录个数的数组 初始化
st[i]=0;
for(i=0;i<buf.length;i++) //第一遍遍历,记录
st[buf[i].charCodeAt()-97]++;
for(i=0;i<buf.length;i++) //第二遍遍历
if(st[buf[i].charCodeAt()-97]===1)
break;
if(i===buf.length)
console.log(`no`);
else
console.log(buf[i]);
});
JS中没有字符之间的减法操作可言,因为JS的原子单位不是字符,就直接是字符串,这里我们可以先把字符转换成阿斯克码十进制的值,再作减法。
'A'.charCodeAt() // 65
'a'.charCodeAt() // 97
'Z'.charCodeAt() // 90
'z'.charCodeAt() // 122
本质上并没有在作字符串或者字符之间的减法,而是都转化成数字,前者用了库函数,后者人为把a代替为97。