(一)

一、題目描述:
求一個字符串的最大回文前綴長度?;匚氖侵刚捶较蜃x起來都一樣的字符串,比如“abcdcba”就是一個回文。
輸入
一個文本文件,至少包含一個字節(jié)。每個字節(jié)是一個字符。最大長度可能有幾十萬字節(jié)。
輸出
最大回文前綴的長度。
樣例輸入
Sogou
樣例輸出

$(function(){
    $('#btn0').click(function(){
        var input0=$('#input0').val();
        var floor=Math.floor(input0.length/2);
        var count=0;
        if(input0.length%2==0){
            for(var i=0,j=input0.length-1;i<floor,j>=floor;i++,j--){
                if(input0.charAt(i)==input0.charAt(j)){
                    count++;
                }
            }
        }else{
            for(var i=0,j=input0.length-1;i<floor,j>floor;i++,j--){
                if(input0.charAt(i)==input0.charAt(j)){
                    count++;
                }
            }
        }
    
        $('#area').html(count);
    });
});

二、題目描述:
定義兩個大于2的偶數(shù)之間的距離,為這兩個數(shù)之間質(zhì)數(shù)的個數(shù)。從小到大輸入n個大于2的偶數(shù),輸出所有數(shù)兩兩之間距離的總和(應(yīng)該有n*(n-1)/2個距離,輸出總和就好)。
輸入
第一行是輸入偶數(shù)的個數(shù),最小為2,最大可能到幾萬。之后每行為一個偶數(shù),最小是4,最大可能是幾百萬,不重復(fù)的升序排列。
輸出
輸入數(shù)據(jù)兩兩間距離的總和,這應(yīng)該是一個不小于0的整數(shù)。
樣例輸入
3
4
6
12
樣例輸出
6

$(function(){
    var num=0;
    var arr=[];
    num=prompt("請輸入偶數(shù)的個數(shù)(最小為2):");
    if(num<2){
        num=prompt("請輸入偶數(shù)的個數(shù)(最小為2):");
    }
    for(var i=0;i<num;i++){
        var cur=prompt("請輸入第"+(i+1)+"個偶數(shù):");
        if(cur%2!=0){
            cur=prompt("請輸入第"+(i+1)+"個偶數(shù):");
        }
        arr[i]=parseFloat(cur);
    }
    var count=0;
    for(var i=0;i<arr.length;i++){
        var curi=arr[i];
        for(var j=i+1;j<arr.length;j++){
            var curj=arr[j];
            for(var r=curi+1;r<curj;r++){
                for(var s=2;s<r;s++){
                    if(r%s==0){
                        break;
                    }else if(s==r-1){
                        count++;
                    }
                }
            }
        }
    }
    var html=num+'<br/>';
    for(var i=0;i<arr.length;i++){
        html+=arr[i]+'<br/>';
    }
    html+=count+'<br/>';
    $('#area').html(html);
});

三、【編程】寫入一個方法,輸入一個文件名和一個字符串,統(tǒng)計這個字符串在這個文件中出現(xiàn)的次數(shù)。

    <input type="file" value="" onchange="readFile(event)" id="input0"/>
function readFile(event){
    var str="index";
    var str_file="";
    var file = event.target.files[0];
    var reader = new FileReader();
    reader.onload = function(event) {
        // 文件里的文本會在這里被打印出來
        str_file+=event.target.result;
        var count=str_file.split(str).length-1;
        $('#area').html(count);
    };
    reader.readAsText(file);
}

四、編寫一個函數(shù)實現(xiàn)form的序列化(即將一個表單中的鍵值序列化為可提交的字符串)

<form id="form0">
        <input type="text" value="text" name="text" />
        <select name="select">
            <option value="">請選擇</option>
            <option value="1" selected>是</option>
            <option value="0" >否</option>
        </select>
        <select name="selectMuilt" multiple="multiple">
            <option value="">請選擇</option>
            <option value="1" selected>選項1</option>
            <option value="0" selected>選項2</option>
            <option value="0">選項3</option>
        </select>
        <textarea name="textarea">textare</textarea>
        <label><input type="checkbox" checked name="checkbox" value="1" />多選1</label>
        <label><input type="checkbox" checked name="checkbox" value="2" />多選2</label>
        <label><input type="checkbox" name="checkbox" value="3" />多選3</label>
        <label><input type="radio" name="radio" value="1" />單選1</label>
        <label><input type="radio" name="radio" value="2" checked />單選2</label>
    </form>
<srcipt>
    var obj={};
    var $form=$('#form0');
    //text,textarea,select
    $value0=$form.find('input[type=text],textarea,select');
    for(var i=0;i<$value0.length;i++){
        obj[$($value0[i]).attr('name')]=$($value0[i]).val();
    }
    //checkbox
    $value1=$form.find('input[type=checkbox]:checked');
    var cur='';
    for(var i=0;i<$value1.length;i++){
        cur+=$($value1[i]).val()+',';
        obj[$($value1[i]).attr('name')]=cur;
    }
    //radio
    $value2=$form.find('input[type=radio]:checked');
    for(var i=0;i<$value2.length;i++){
        obj[$($value2[i]).attr('name')]=$($value2[i]).val();
    }
    return obj;
</script>

五、請用js原生代碼寫出數(shù)組去重的函數(shù),并考慮到執(zhí)行效率。

    var arr=[2,4,1,2,4,5,2,5,6,7,8,22,53];
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        if(newArr.indexOf(arr[i])==-1){
            newArr.push(arr[i]);
        }
    }
    alert(newArr);

六、
【題目描述】
真是一個無聊的夜晚啊,小B和小C在宿舍中實在無聊之極,因此決定玩一個數(shù)字游戲打發(fā)時間。小B首先開始,她給小C的問題是:
給定任意一個整數(shù),小C可以交換該數(shù)中任意的不同位,能夠得到的最小數(shù)值是多少?前提是不能有前導(dǎo)0。
小C很快就給出了一個答案,小B希望你來幫她檢驗答案的正確性,你能幫忙嗎?
輸入
輸入中有多組測試數(shù)據(jù)。每組測試數(shù)據(jù)的第一行為一個沒有前導(dǎo)0的整數(shù)n(0=< n =< 109),第二行為另一個整數(shù)m(0=<m=<109),小C給出的問題答案。
輸出
對每組測試數(shù)據(jù),在單獨(dú)的行中輸出結(jié)果,若小C的答案是正確的,輸出YES,否則輸出NO。
樣例輸入
3310
1033
4
5
樣例輸出
YES
NO

var ques=prompt("請輸入數(shù)字:");
    var ans=prompt("請輸入答案:");
    var arr=ques.split("");
    arr=arr.sort(compare);
    if(arr[0]=='0'){
        for(var i=1;i<arr.length;i++){
            if(arr[i]!='0'){
                arr[0]=arr[i];
                arr[i]='0';
                break;
            }
        }
    }
    var res=arr.join("");
    var result='NO';
    if(res==ans){
        result='YES';
    }
    alert(result);

    function compare(val0,val1){
        if(val0>val1){
            return 1;
        }else if(val0<val1){
            return -1;
        }else{
            return 0;
        }
    }

七、【題目描述】
小B對腦筋急轉(zhuǎn)彎問題很有興趣,她覺得這種問題的挑戰(zhàn)能夠反映一個人的應(yīng)急反應(yīng)能力。她正在開發(fā)一個智力測試的游戲,游戲的主角是一個螞蚱。螞蚱最初位于0點(diǎn)處,可以在直線上向正向或反向兩個方向跳躍。比較特別的是,螞蚱每次跳躍的距離比前一次跳躍多一個單位,第一次跳躍的距離為一個單位。
小B的問題是,如果讓螞蚱跳躍到x處,需要經(jīng)過多少次跳躍,你能解決這個問題嗎?
輸入
輸入中有多組測試數(shù)據(jù)。每組測試數(shù)據(jù)為單獨(dú)的一行,包含一個整數(shù)x(-10^9 =< x =< 10^9)。
輸出
對每組測試數(shù)據(jù),在單獨(dú)的行中輸出螞蚱最少需要跳躍的次數(shù)。
樣例輸入
2
6
0
樣例輸出
3
3
0

//思路:開始讓螞蚱一直往向所在方向向前跳,在跳下一步之前先判斷當(dāng)前所在的位置加上下一步要跳的距離是否會超過所要到的位置。
var step=1;
var cur=0;
var x=parseInt(prompt("輸入:"));
var count=0;
if(cur!=x){
    do{
        if(cur+step<=x){
            cur+=step;
            step++;
            count++;
        }else if(cur+step>x){
            cur-=step;
            step++;
            count++;
        }
    }while(cur!=x);
}
alert(count);

八、根據(jù)Unix時間戳計算時間,不分大小月,每月30天,每年按360天計算。
開始時間1970/01/01 00:00:00,輸入秒數(shù),顯示時間
例如,輸入:
2
1
12345678
輸出
1970/01/01 00:00:01
1970/05/23 21:21:18

//思路一:進(jìn)位,60秒進(jìn)1分鐘,60分進(jìn)1小時,24小時進(jìn)1天,30天進(jìn)1月,12月進(jìn)1年,依次建立循環(huán)
var year=1970;
var month=1;
var day=1;
var hh=0;
var mm=0;
var ss=0;
var num=parseInt(prompt('輸入秒數(shù):'));
while(num>60){
    num-=60;
    mm++;
    if(mm==60){
        mm-=60;
        hh++;
        if(hh==24){
            hh-=24;
            day++;
            if(day==30){
                month++;
                day-=30;
                if(month==12){
                    year++;
                    month-=12;
                }
            }
        }
    }
}
ss+=num;
alert(year+'/'+fillZero(month)+'/'+fillZero(day)+" "+fillZero(hh)+":"+fillZero(mm)+":"+fillZero(ss));
function fillZero(val){
    if(val<10){
        val='0'+val;
    }
    return val;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容