去哪兒2015年校招筆試

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   java   ar   strong   

零、寒暄

這段時間陸陸續續的跑一些筆試,時間比較倉促,難得有機會整理,下面跟大家分享一下23號去哪兒的筆試題。不多說,來正題。

去哪兒一共有7道題,前三道是必答題,後面有兩道是前端必答題,還有最後兩道是測試必答題,其他人選答,也就是說我的前端崗位,5道題必答,2道題選答。時間100分鐘。

一、題目

1.題目是用英文寫的,我就用本人拙劣的英語水平給大家翻譯一下,有可能題目都翻譯得不對,大家見諒,哈哈。大概就是設計一個函數,要求返回不小於最小長度的字串,字串長度不夠的,用傳進的字元補全字串。padStart(string,minLength,padChar)string:需要出現在返回結果的末尾minLength:必須值,可以為零或負,此時返回完整的字串padChar:用於插入字串前以補全字串達到最小的字串長度return:返回拼接後的字串例如padStart("7",3,"0") returns "007"padStart("2010",3,"0") retruns "2010"這個題目只要是考一下基本的英文翻譯,知識點考點還行,如果各位需要原稿英文題目,在下面留言,我會貼出來。看下面代碼:
function padStart(string, minLength, padChar) {    var strLen = string.length,        result = "";    if (strLen <= 0 || strLen == minLength || strLen > minLength) {        result = string;    } else if (strLen < minLength) {        var offset = minLength - strLen;        for (var i = 0, len = offset; i < len; i++) {            if (i == 0) {                result = padChar + string;            } else {                result = padChar + result;            }        }    }    return result;}console.log(padStart("2010", 3, "0")); //2010console.log(padStart("7", 4, "0")); //007     
2.編寫一個簡單的命令列參數解析函數,命令列的參數名用“-”加英文或數字組成,例如“-name”,後面跟著的部分是具體的值,命令列參數之間,參數與值之間用一個或多個連續的空格分隔。雙引號中的內容作為一個整體看待,不進行解析。返回結果是被分隔開的額一個個參數和值。假定命令列的內容只會包含英文、數字、空格、雙引號和減號。例如,參數為:-name Lily -age 21  -school ""University of Oxford"返回結果為:[-name Lily,-age 21,-school "University of Oxford"]看下面代碼:
function getParam(str) {    var newStr = str.split("-");    console.log(newStr);    for (var i = 0, len = newStr.length; i < len; i++) {        newStr[i] = "-" + newStr[i]    }    newStr.shift();    return newStr;}var result = getParam("-name Lily -age 21 -school ‘University of Oxford‘");console.log(result);
3.編寫一個diff函數,用來比較兩個字串的差異,如果字元在第一個字串中存在,在第二個字串中不存在則輸出減號和相應的字串;如果字元在第二個字串中存在,在第一個字串中不存在則輸出加號和相應的字串;如果存在相同的子字串,則子字串中的內容都不需要輸出,字元的比較結果用逗號分隔,每個差異的字串都要找出來。要求充分利用相同的子字串,儘可能最佳化演算法保證輸出的結果最短。作為參數的字串中只會包含英文字母。 假設函數原型為:String diff(String a,String b)如:a="abc",b="aabcbc",則輸出為"+a,+b,+c";a="abcde",b="bcdef",則輸出為“-a,+f”我覺得這個題目自己在“要求充分利用相同的子字串,儘可能最佳化演算法保證輸出的結果最短”做的是不夠的,或者說沒有達到題目的要求,希望大家提點意見,把自己的代碼直接貼到我部落格下面,萬分感謝。看下面代碼:
function diff(strA, strB) {    var arrA = strA.split(""),        arrB = strB.split(""),        tempStr = "",        strInA = "",        strInB = "",        result = "";    for (var i = 0, lenA = arrA.length; i < lenA; i++) {        if (strB.indexOf(arrA[i]) == -1) {            //A有B沒有            strInA = strInA + "-" + arrA[i] + ",";        } else {            tempStr = tempStr + arrA[i];        }    }    for (var j = 0, lenB = arrB.length; j < lenB; j++) {        if (tempStr.indexOf(arrB[j]) == -1) {            strInB = strInB + "+" + arrB[j] + ",";        }    }    result = strInA + strInB;    result = result.slice(0, -1);    return result;}console.log(diff("abce", "abcd")); //-e,+d
4.css的題目div寬度為100px,邊框為1px,div1、div2為兄弟元素,要求分別畫出以下三種情況中二者的在頁面中的表現 a) .div1{position:absolute;float:left} .div2{position:absolute;float:right} b) .div1{postition:relative;float:left} .div2{position:relative;float:right} c) .div1{position:absolute;float:right} .div2{position:relative;float:left}這道題目當時不知道為啥,被整懵了,其實很簡單的,就考查絕對位置和相對定位,那個是真正的脫離普通流,即是否在頁面中佔據位置。:  5.請實現javascript中的indexOf功能,判斷一i個字串a中是否包含另一個字串b。a)如果包含,需要返回匹配字串b的位置b)如果不包含,需要返回-1例如 indexOf("hello","el") returns 1;看下面代碼:
function indexOf(strA, strB) {    var lenA = strA.length,        lenB = strB.length;    if (lenA < lenB) {        return -1;    } else if (lenA == lenB) {        return 0;    } else {        for (var j = 0; j < lenA; j++) {            if (strA.charAt(j) == strB[0] && strA.substr(j, lenB) == strB) {                return j;            }        }        return -1;    }}console.log(indexOf("hello", "el")); //1

三、總結

本人前端菜鳥,能力有限。其實去哪兒的筆試題還是蠻基礎的,但是自己有些題目做的有瑕疵。把題目列出來,主要是給大家一個參考。另外,題目答案自己做的不一定正確,歡迎留言拍磚。代碼肯定有大量需要最佳化的地方,希望各位提出意見,大家共同進步,祝各位基友軟妹子找到理想工作。

去哪兒2015年校招筆試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.