-- 创造无限可能

js-练习一

2023-06-29 23:44:16
456 人浏览 0 人点赞
有用,点赞支持一下

练习1: 两个数之和,同一个元素在答案里不能重复出现

代码:
let num1 = 0;
let num2 = 0;
for(let i = 0;i<nums.length;i++){
num1= nums[i]
for(let j = i+1;j<nums.length;j++){
num2= nums[j]
if(num1 + num2 == target){
return [i,j]
}
}
}
总结:使用for循环,循环两次,第二次循环把i改为j,j=i+1

练习2: 回文数

解题思路:既然回文数是数字反转以后还和之前的数字一样,那么可以判断反转过的数字是否和之前的一样,
是的话就是回文数,不是的话就不是回文数先把数字转化为字符串,解析成数组反转过以后再转化字符串,
然后把字符串在重新转化为数字。
代码:
var isPalindrome = function(x) {
// 数字转字符串
if(x<0){
return false
}
// 反转字符串
var x2=parseInt(x.toString().split(‘’).reverse().join(‘’))
// 判断反转后的字符串是否和原始字符串相等
return x2 === x ? true : false
};
isPalindrome(121)

练习3: 罗马数字转整数

解题思路:
1.左边的罗马数字 > 右边的罗马数字时,罗马数 == 左边罗马数字对应的阿拉伯数字 + 右边罗马数字对应的阿拉伯数字
2.左边的罗马数字 < 右边的罗马数字时,罗马数 == 左边罗马数字对应的阿拉伯数字的反数即负数 + 右边罗马数字对应的阿拉伯数字
代码:
var romanToInt = function(s) {
let obj={
I:1,
V:5,
X:10,
L:50,
C:100,
D:500,
M:1000,
}
let num=0
for(let i = 0; i < s.length; i++){
if(obj[s[i]] < obj[s[i+1]]){
num -= obj[s[i]]
}else{
num += obj[s[i]]
}
}
return num
};
romanToInt (‘III’)