(2023年春季阿里巴巴實習生筆試)
題目:有乙個大陣列,var a = [『1』,』2』,』3』,…];a陣列的長度是100,內容填充隨機整數的字串,請先構造此陣列a,然後設計乙個演算法,將其內容去重。
function
random
(n)
console.log(arr);
return arr;
}//使用indexof 這裡也可以使用arr2的indexof
function
delerepeat1
(arr)
}return arr2;
}//使用hash
function
delerepeat2
(arr) ;
var len = arr.length;
for (var i = 0; i < len; i++)
}return arr2;
}var arr = random(100);
console.log(delerepeat1(arr));
console.log(delerepeat2(arr));
隨機生成陣列。陣列去重。
上面兩個方法是大神們推薦的。
我們知道js的陣列有splice函式,可以刪除陣列中的乙個值。然後我就嘗試不建立新陣列,迴圈遍歷陣列,當判斷陣列內arr.indexof(arr[i])!=i的時候,直接使用splice函式去刪除第i個元素,發現結果是錯的。
少刪除了一些元素。
為啥捏。一想就明白了。
我當時是這麼寫的。
for(var i=0;i
length;i++)
當我成功刪除了乙個元素的時候,arr.length就減一了,i位置的數被刪除了,那下乙個數應該還是第i個數。i不應當自增1。
寫成這樣才可以捏
function
delerepeat3
(arr)
}return arr;
}
當然要計算一下時間複雜度了。
第一種方法:迴圈遍歷加indexof方法(indexof當然也要遍歷陣列了)
o(n*n)時間複雜度。
第二種方法:迴圈遍歷加hash 。hash的事件複雜度是o(1)呀。
o(n)的事件複雜度。
第三種方法:迴圈遍歷 加 indexof 加 splice 。好吧。這個的時間複雜度 最高。o(n*n*n)的時間複雜度。
所以,最好的陣列去重方式還是hash,以空間換時間的辦法。(2023年春季阿里巴巴實習生筆試)
物件字面量:
var list = ;
var str = '';
function
substitute
(str, o, regexp) 裡的內容,並進行替換。
return str.replace(regexp ||/\/g, function
(match, name) );
}console.log(substitute(str,list));
正規表示式裡/g的目的是匹配n次。
如果沒有/g,匹配玩乙個{}之後就停止了。有了/g可以接著往下匹配。
/w 匹配任意乙個字母或數字或下劃線,也就是 a~z,a~z,0~9,_ 中任意乙個。
- 1.匹配次數中的貪婪與非貪婪
匹配的貪婪模式。匹配最左端的「」(即最後一次出現」}」才匹配)。使得匹配串很長。
就是匹配的非貪婪模式。匹配最左端的「」(即第一次出現」}」就匹配了)。使得匹配串很長。
舉例1:表示式 "(.*)" 與字串 "aa
bb" 匹配時,匹配的結果是:成功;匹配到的內容是 "aa
bb" 整個字串, 表示式中的 "" 將與字串中最後乙個 "" 匹配。
舉例2:相比之下,表示式 "(.*?)" 匹配舉例1中同樣的字串時,將只得到 "aa
", 再次匹配下乙個時,可以得到第二個 "bb
"。
這裡使用了非貪婪模式,雖然貪婪模式也可以得出正確答案,但是效能沒有非貪婪模式好。
(2023年春季阿里巴巴實習生筆試)
題目:在頁面上的這樣的乙個區塊,區塊中展示的資料都是頁面載入後從後端ajax介面獲取的,請實現該區塊的資料請求與渲染的邏輯。
要求:1.進行當前區塊的樣式布局。
2.設計當前區塊所適合的json格式、或者xml的資料格式(要包含商品、商品原價、商品折扣價、商品標題、商品標籤)並模擬介面data.json/data.xml
3.自行選擇框架(kissy,yui,jq)或者原生**編寫與設計好的後端介面通訊和渲染的過程。
json.js
/**
* created by administrator on 2016/5/29.
*/var json = ,,,
,,,,
,,,]
}
index.html
lang="en">
charset="utf-8">
title>
* ul
lia, a
img, p
ap .money
style>
head>
ul>
c 常見筆試題(4)
40.鍊錶題 乙個鍊錶的結點結構 struct node typedef struct node node 1 已知鍊錶的頭結點head,寫乙個函式把這個鍊錶逆序 intel node reverselist node head 鍊錶逆序 p2 next p1 head p2 return head...
近期公司筆試題(4)
乙個字串和乙個正整數k,你需要對從字串開頭算起的每3k個字元的前k個字元進行反轉。如果剩餘少於k個字元,則將所剩餘的所有字串全部反轉。如果小於3k但是大於或等於k個字元,則反轉前k個字元,並將所剩餘的字元保持原樣。輸入描述 輸入需要反轉的字串s與正整數k k 0 輸出描述 輸出經過反轉後的字串 例項...
html,css筆試題分享 4
加粗 strong b 上標 sub 下標 sup 居中 center 字型 font 作用 告訴瀏覽器文件使用的是那種文件型別,是html還是xhtml 型別 嚴格版本過濾版本基於框架html版本 iframe的優點和缺點?優點 可以重複呼叫,過載頁面的時候不需要載入整個頁面,只需要載入結構,維護...