亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

javascript實現(xiàn)一些算法題

DirtyMind / 849人閱讀

摘要:字符的左右移動給定一個字符串,這個字符串為號和個字母的任意組合。題目二在一個字符串中找到第一個只出現(xiàn)一次的字符。乘除模擬位運算真正位運算輸入一個整數(shù),求從到這個整數(shù)的十進制表示中出現(xiàn)的次數(shù)。

字符的左右移動

給定一個字符串,這個字符串為號和26個字母的任意組合?,F(xiàn)在需要把字符串中的號都移動到最左側(cè),而把字符串中的字母移到最右側(cè)并保持相對順序不變,要求時間復(fù)雜度和空間復(fù)雜度最小。

var stars = "sosunn**afns*repsni*";

var rs = stars.split("");
var flag = 0;
for(var i=rs.length -1; i>=0; i--){
    if(rs[i] == "*"){
        flag++;
    }else{
        if(flag == 0)
            continue;
        else{
            rs[i+flag] = rs[i];
            rs[i] = "*";
        }
    }
}
console.log(rs.join(""))
map妙用

題目一:

給定一個字符串,寫一個函數(shù),查找出該字符串中每個字符出現(xiàn)的次數(shù),要求區(qū)分大小寫,且時間復(fù)雜度為O(n)。

var str = "safaAuasfAJIFjHDWEFHDaAueUEWda";
var results = {};
var rs = str.split("");

rs.forEach(function(al){
    if(results[al] === undefined){
        results[al] = 1;
    }else{
        results[al]++;
    }
})

var keys = Object.keys(results);
for(var i = 0; i < keys.length; i++){
    console.log(keys[i] + " : " + results[keys[i]]);
}

題目二:

在一個字符串中找到第一個只出現(xiàn)一次的字符。如輸入abaccdefbf,則輸出d。

var str = "abaccdefbf";
var results = {};
var rs = str.split("");

rs.forEach(function(al){
    if(results[al] === undefined){
        results[al] = 1;
    }else{
        results[al]++;
    }
})

var keys = Object.keys(results);
for(var i = 0; i < keys.length; i++){
    if(results[keys[i]] === 1){
        console.log(keys[i]);
        break;
    }
}

題目三:

最近在壇子里的問題,其實活用map,很容易就解決了,問題在這:https://segmentfault.com/q/1010000004891... ,就是json格式重整。我的解答如下:

var json1 = { ... };
var jmap = {};
var result = [];

json1.forEach(function(al){
    var key = al.menuDate + "_" + al.dinnerTime;
    if(typeof jmap[key] === "undefined"){
        jmap[key] = [];
    }
    jmap[key].push(al);
})

var keys = Object.keys(jmap);
for(var i = 0; i < keys.length; i++){
    var rs = keys[i].split("_");
    result.push({menuDate:rs[0],dinnerTime:rs[1],value:jmap[keys[i]]});
}
位運算

輸入一個整數(shù),求該整數(shù)的二進制表達中有多少個1。

1.乘除模擬位運算:

(function(aInt){
    var intStr = [], count = 1;
    while(aInt > 1){
        if(aInt % 2 == 0){
            intStr.unshift(0);
        }else{
            intStr.unshift(1);
            count++;
        }
        aInt = Math.floor(aInt/2);
    }
    intStr.unshift(1);

    console.log("Binary String : " + intStr.join(","));
    console.log("The count is  : " + count);
}(28));

2.真正位運算:

(function(aInt){
    var intStr = [], count = 0;
    while(aInt > 0){
        var cur = aInt & 1;
        intStr.unshift(cur);
        if(cur == 1){
            count++;
        }
        aInt = aInt >> 1;
    }

    console.log("Binary String : " + intStr.join(","));
    console.log("The count is  : " + count);
}(10));

輸入一個整數(shù)n,求從1到n這n個整數(shù)的十進制表示中1出現(xiàn)的次數(shù)。

(function(aInt){
    var count = 0;
    for(var i = 1; i <= aInt; i++){
        var a = i;
        while(a >= 1){
            if(a % 10 == 1){
                count++;
            }
            a= Math.floor(a / 10);
        }
    }
    console.log("The count is  : " + count);
}(13));

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/79044.html

相關(guān)文章

  • 深入理解js

    摘要:詳解十大常用設(shè)計模式力薦深度好文深入理解大設(shè)計模式收集各種疑難雜癥的問題集錦關(guān)于,工作和學(xué)習(xí)過程中遇到過許多問題,也解答過許多別人的問題。介紹了的內(nèi)存管理。 延遲加載 (Lazyload) 三種實現(xiàn)方式 延遲加載也稱為惰性加載,即在長網(wǎng)頁中延遲加載圖像。用戶滾動到它們之前,視口外的圖像不會加載。本文詳細(xì)介紹了三種延遲加載的實現(xiàn)方式。 詳解 Javascript十大常用設(shè)計模式 力薦~ ...

    caikeal 評論0 收藏0
  • 前端周報:前端面試及答案總結(jié);JavaScript參數(shù)傳遞的深入理解

    摘要:前端面試題及答案總結(jié)掘金技術(shù)征文金三銀四,金九銀十,用來形容求職最好的幾個月。因為的存在,至少在被標(biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。 showImg(https://segmentfault.com/img/bVVQOH?w=640&h=319); 1、2017前端面試題及答案總結(jié) |掘金技術(shù)征文 金三銀四,金九銀十,用來形容求職最好的幾個月...

    ermaoL 評論0 收藏0
  • 前端排序算法總結(jié);前端面試2.0;JavaScript異步編程

    摘要:與異步編程按照維基百科上的解釋獨立于主控制流之外發(fā)生的事件就叫做異步。因為的存在,至少在被標(biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。在握手過程中,端點交換認(rèn)證和密鑰以建立或恢復(fù)安全會話。 1、前端 排序算法總結(jié) 排序算法可能是你學(xué)編程第一個學(xué)習(xí)的算法,還記得冒泡嗎? 當(dāng)然,排序和查找兩類算法是面試的熱門選項。如果你是一個會寫快排的程序猿,面試官在比較...

    aaron 評論0 收藏0
  • 前端排序算法總結(jié);前端面試2.0;JavaScript異步編程

    摘要:與異步編程按照維基百科上的解釋獨立于主控制流之外發(fā)生的事件就叫做異步。因為的存在,至少在被標(biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。在握手過程中,端點交換認(rèn)證和密鑰以建立或恢復(fù)安全會話。 1、前端 排序算法總結(jié) 排序算法可能是你學(xué)編程第一個學(xué)習(xí)的算法,還記得冒泡嗎? 當(dāng)然,排序和查找兩類算法是面試的熱門選項。如果你是一個會寫快排的程序猿,面試官在比較...

    ARGUS 評論0 收藏0
  • 前端排序算法總結(jié);前端面試2.0;JavaScript異步編程

    摘要:與異步編程按照維基百科上的解釋獨立于主控制流之外發(fā)生的事件就叫做異步。因為的存在,至少在被標(biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。在握手過程中,端點交換認(rèn)證和密鑰以建立或恢復(fù)安全會話。 1、前端 排序算法總結(jié) 排序算法可能是你學(xué)編程第一個學(xué)習(xí)的算法,還記得冒泡嗎? 當(dāng)然,排序和查找兩類算法是面試的熱門選項。如果你是一個會寫快排的程序猿,面試官在比較...

    April 評論0 收藏0

發(fā)表評論

0條評論

DirtyMind

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<