今天我們課上學習了JavaScript,課后老師留下了一些題目讓我們做,我們來看一下這些題目:
<p>第一題:</p> <p>定義兩個變量a和b,分別賦值為10和20,寫一個函數swap實現兩個變量的交換,最后輸出a和b的值。</p>
這是一個典型的交換變量題目,我們可以使用第三變量來實現:
var a = 10; var b = 20; function swap(a, b){ var temp = a; a = b; b = temp; } swap(a, b); console.log('a = '+a+' ,b = '+b);
輸出結果應該是a=20,b=10。
<p>第二題:</p> <p>寫一個函數,判斷輸入的字符串是否為一個回文字符串,是則返回true,否則返回false。</p>
這里的回文字符串指的是正著念和倒著念都一樣的字符串,比如level就是一個回文字符串。
function isPalindrome(str){ var len = str.length; for (var i=0; i<len/2; i++){ if (str.charAt(i) != str.charAt(len-1-i)){ return false; } } return true; } console.log(isPalindrome('level')); //true console.log(isPalindrome('abcba')); //true console.log(isPalindrome('hello')); //false
運行結果應該是true、true、false。
<p>第三題:</p> <p>給定一個數組nums和一個目標值target,請你給出一個算法,找到數組中兩個數之和等于目標值并返回其數組下標。</p>
這道題可以使用兩重循環來遍歷所有情況,但是這樣的時間復雜度是O(n^2),不夠高效。我們可以使用哈希表來降低時間復雜度:
function findIndex(nums, target){ var map = new Map(); for (var i=0; i<nums.length; i++){ var complement = target - nums[i]; if (map.has(complement)){ return [map.get(complement), i]; } map.set(nums[i], i); } return []; } console.log(findIndex([2,7,11,15], 9)); //[0,1] console.log(findIndex([3,2,4], 6)); //[1,2] console.log(findIndex([3,3], 6)); //[0,1]
輸出結果應該是[0,1]、[1,2]、[0,1]。
以上是今天學習的所有應用題目,JavaScript語言的應用范圍很廣,只要我們學會了基本語法并理解了基本原理,就可以快速上手各種應用場景。
上一篇css div并列
下一篇cad div 怎么顯示