1. 程式人生 > 其它 >leecode刷題--兩數之和

leecode刷題--兩數之和

1.兩數之和

 1 /**
 2  * @param {number[]} nums
 3  * @param {number} target
 4  * @return {number[]}
 5  */
 6 var twoSum = function(nums, target) {
 7     for(let i=0;i<nums.length;i++){
 8         let rest = target - nums[i]
 9         nums[i] = NaN
10         if(nums.includes(rest)){
11             let index = nums.indexOf(rest)
12 return [i,index] 13 } 14 } 15 };

2.迴文數

 1 /**
 2  * @param {number} x
 3  * @return {boolean}
 4  */
 5 var isPalindrome = function(x) {
 6     if(x===0) return true
 7     if(x<0 || x%10===0) return false
 8     let str = x.toString()
 9     if(str.split('').reverse().join(''
)===str){ 10 return true 11 }else{ 12 return false 13 } 14 };

3.羅馬數字轉整形

 1 /**
 2  * @param {string} s
 3  * @return {number}
 4  */
 5 var romanToInt = function(s) {
 6     let total = 0
 7     let romanArr = s.split('')
 8     for (let i=0;i<romanArr.length;i++) {
 9         if
(romanArr[i]+romanArr[i+1] === 'IV'){ 10 total += 4 11 i++ 12 continue 13 } 14 if(romanArr[i]+romanArr[i+1] === 'IX'){ 15 total += 9 16 i++ 17 continue 18 } 19 if(romanArr[i]+romanArr[i+1] === 'XL'){ 20 total += 40 21 i++ 22 continue 23 } 24 if(romanArr[i]+romanArr[i+1] === 'XC'){ 25 total += 90 26 i++ 27 continue 28 } 29 if(romanArr[i]+romanArr[i+1] === 'CD'){ 30 total += 400 31 i++ 32 continue 33 } 34 if(romanArr[i]+romanArr[i+1] === 'CM'){ 35 total += 900 36 i++ 37 continue 38 } 39 if(romanArr[i] === 'I'){ 40 total += 1 41 continue 42 } 43 if(romanArr[i] === 'V'){ 44 total += 5 45 continue 46 } 47 if(romanArr[i] === 'X') 48 { 49 total += 10 50 continue 51 } 52 if(romanArr[i] === 'L'){ 53 total += 50 54 continue 55 } 56 if(romanArr[i] === 'C'){ 57 total += 100 58 continue 59 } 60 if(romanArr[i] === 'D'){ 61 total += 500 62 continue 63 } 64 if(romanArr[i] === 'M'){ 65 total += 1000 66 continue 67 } 68 } 69 return total 70 };

4.最長公共字首

 1 /**
 2  * @param {string[]} strs
 3  * @return {string}
 4  */
 5 var longestCommonPrefix = function(strs) {
 6     let index = -1
 7     let minLength = 300
 8     let res = ""
 9     const newArr = []
10     strs.forEach(item =>{
11         if(minLength>item.length) minLength = item.length
12         newArr.push(item.split(''))
13     })
14     for(let i=0;i<minLength;i++){
15         if(newArr.every(item=>{return item[i] === newArr[0][i]})) {
16             index = i
17         }else{
18             break
19         }
20     }
21     if(index === -1){
22         return ""
23     }else{
24         for(let j=0;j<=index;j++){
25             res += newArr[0][j]
26         }
27         return res
28     }
29 };