奇安信2020暑期前端實習筆試總結


一、投遞信息

  1. 投遞時間:2020年3月21日
  2. 崗位:web前端開發工程師—暑期實習
  3. 工作地點:成都
  4. 信息來源:校招優選微信公眾號
  5. 回復時間:2020年3月26日
  6. 筆試時間:2020年3月28日
  7. 筆試平台:牛客網

二、筆試題型

  1. 單選題
  2. 多選題
  3. 2道編程題

三、回憶起來的題或考點

  1.  行內樣式的優先級

    • <p class="a b">hello html</p>

    • p{color: blue;}.a{color: red;}.b{color: yellow;}文本顯示的顏色?

  2.  二叉樹的中序遍歷(太久沒看題,把先序和中序搞混了,我對不起數據結構的老師)

  3.  TCP擁塞控制(我看了,但是忘了,心痛!)

    學習文章:https://segmentfault.com/a/1190000018360050

  4. 數組、鏈表、樹、哈希表(最高性能)

  5. switc語法問題(這應該是送分的)
  6. ICMPv6(看過,但沒記住)
  7. 行內、塊級元素(比較簡單)
  8. 不屬於數組的方法    splice()、join()、reverse()、sort()  
    • 我尋思這都能用呀。想不明白,有大神看到能指點我一下嗎
  9. 堆、棧、進程、線程
  10. 正則表達式(這個單選多選都出了)
  11. let

編程題

 1.小明有n元錢去買口罩,共有6個品牌,A品牌2個裝(2元),B品牌3個裝(2元),C品牌1個裝(3元),D品牌5個裝(1元),E品牌3個裝(5元),F品牌3個裝(2元),每個牌子只能買一次,請問n元小明最多能買多少個?

   當時的想法:這道題很像背包問題,重量=錢;價值=口罩數量。可是我理解的還不是很透徹,使用for循環,一步步遍歷下去,只有60%通過,而且浪費了特別多的時間。

   背包問題:https://segmentfault.com/a/1190000012829866

   這里提供學習鏈接,大家一塊鑽研,如果我后面寫出來成功的,會貼過來。

   

  2.三角形的每條邊上有4個圓,在每個圓內寫出1-9,使每條邊的和相等。按以下的順序。

   

   當時的想法:做完第一題就只剩下10來分鍾,連思路都沒,只能硬着頭皮敲。但是后面沒輸出好像也還是0%

    解題思路:

    • 首先判斷輸入的內容是否違法,(必須是1-9,且不能重復)
    • 1-9的總和為45,設每一邊的和為x,三個頂點為a,b,c;3x=45+a+b+c(一個頂點兩條邊,所以是重復計算的);由此可得a+b+c為三的倍數;
    • 例:三個角分別為1 4 7 || 2 5 8 ||  3 6 9    
      •   1 4邊有5 9 
      •   1 7邊有3 8
      •   4 7 邊有2 6
   let a =  [1,5,9,4,2,6,7,3,8];
    var nums = [1,2,3,4,5,6,7,8,9];
    function permute(nums,a){
      var result =[];
      let b = JSON.parse(JSON.stringify(a)) ;//防止原數組污染
      b.sort((v1,v2)=>v1-v2);//排序
      //進行1對1的判斷輸入是否合法
      for(let i=0;i<b.length;i++){
        if(b[i]!==nums[i]){
          console.log("非法");
          return false;
          break;
        }
      }
      //三個頂點是否能被三整除
      if((a[0]+a[3]+a[6])%3==0){
        for(i=0;i<a.length;){
          let p = a[i]+a[i+1]+a[i+2]+(a[i+3]?a[i+3]:a[0])
          result.push(p);
          i += 3;
        }//獲得三條邊的長
        if(result[0]==result[1]&&result[0]==result[2]){
          return true;
        }else{
          return false;
        }
      }
    }
console.log(permute(nums,a));

 

四、總結

  1、選擇題很多一知半解,能排除一兩個選項,然后靠運氣

    2、選擇題問的比較多的是基礎知識,計算機網絡、數據結構、JavaScript、CSS,是自己知識點不夠牢固,題做得也不夠。接下來就是每天在基礎上花時間,將還給老師的補回來。

    3、這兩道編程題其實算簡單,但是我通過率第一道只有60%,第二道0%其實不應該,第一次用牛客網筆試不熟悉是一方面,還有自己不會把控時間,慌了神。

    4、接下來就是圍繞這兩方面,進行鞏固基礎和刷題進行。給定自己最低目標每天刷一道題。我會把每次筆試或者面試進行總結,慢慢進步吧!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM