@No.HJ59 找出字符串中第一个只出现一次的字符
- @problem description:
找出字符串中第一个只出现一次的字符- @input description:
输入几个非空字符串- @output description:
输出第一个只出现一次的字符,如果不存在输出-1
var str1 = readline();
var str2 = readline();
function fun(str){
var arr = str.split("");
var button = 1;
for(var i=0;i<arr.length && button == 1;i++){
var mid = arr.slice(0);
var del = mid.splice(i,1);
if(mid.indexOf(del[0]) == -1){
console.log(del[0]);
button = 0;
}else if(i == arr.length-1){
console.log(-1);
};
};
};
fun(str1);
fun(str2);
算法分析:
由于需要处理的数据有两次,所以还是封装一个函数fun来调用。
对字符串的操作本质上都可以转换成数组的操作,而且更方便,要灵活运用split()
方法。
button
变量是定义的一个循环开关,在需要结束循环的时候,改变button的值即可。
在每次循环中,都重新克隆一个原arr数组mid,之后splice删除取出对应 i 的字符,然后用indexOf()方法检测每次取出的字符在剩余mid数组中的位置下标:如果没有找见,
indexOf()
方法会返回 -1 ,即取出的字符在原字符串中是唯一的,则输出这个字符并修改button的值结束循环;
如果一直到循环的最后一次( i == 数组最后一个元素下标)都没有返回 -1 ,则说明这个字符串中没有唯一字符,则返回 -1 即可。
Code_Zevin_J —— 2020-08-05 20:03:34