我在做一個(gè)Web請(qǐng)假(圖表操作形式)老師通過點(diǎn)擊表格列選中,表示這個(gè)時(shí)間請(qǐng)假。當(dāng)老師在一周的表格上點(diǎn)了很多下的時(shí)候,Jquery通過樣式查找得到老師選中的時(shí)間片ID,形如 (1_1,1_2,1_3,3_3,3_4,3_5)這樣一個(gè)字符串。這個(gè)形式表示老師星期一,1,2,3節(jié)課請(qǐng)假,星期三,3,4,5節(jié)課請(qǐng)假。因?yàn)槲以跀?shù)據(jù)里要插入2條記錄。所以要把(1_1,1_2,1_3,3_3,3_4,3_5)分割成(1_1,1_2)(3_3,3_4,3_5)這2個(gè)字符串。請(qǐng)問有什么好的算法沒有?我的想法:1.分割成數(shù)組all[]遍歷,把_前的數(shù)字找出來。去掉重復(fù),放到一個(gè)臨時(shí)數(shù)組 pre[].2.創(chuàng)建數(shù)組temp[pre.length]。再雙重遍歷all[]與pre[],遍歷的時(shí)候if(all[i].startWith(pre[j]))temp[j]+=all[i]+","3.最后得到的temp[]就是要的結(jié)果?總感覺有點(diǎn)麻煩。求更好的算法.
2 回答

肥皂起泡泡
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
1.你如果能保證1_X在3_X前面,就聲明一個(gè)變量,保存截取的第一個(gè)字符,如果當(dāng)前截取的和之前的不一樣就說明已經(jīng)循環(huán)到了下一個(gè)時(shí)間段。這樣就能獲得你要的結(jié)果。
2.如果不能保證,就把截取的第一個(gè)字符放到Map中,key就是你的第一個(gè)字符,value就是拼接的字符,每次先拿截取的第一個(gè)字符串查詢Map中的值,有就拼接,沒有就添加一個(gè)。

一只萌萌小番薯
TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
字符串1_1,1_2,1_3,3_3,3_4,3_5分隔為數(shù)組,將數(shù)據(jù)類型為M_N的數(shù)據(jù)用map來保存,針對(duì)你所提出的例子,最終map數(shù)據(jù)為key:1,value:1,2,3;key:3,value:3,4,5
添加回答
舉報(bào)
0/150
提交
取消