英文本元,也就是a-z
,a-z
分別對應的ascii碼是97-122
,65-90
總共加起來52個字元,如果按照平時相反,兩層for迴圈,外面一層遍歷字串,裡面一層開乙個新陣列,判斷當前字元在陣列中有沒有,沒有就存,有就跳過
但是不讓開新陣列,這時候可以考慮使用bit位。正好乙個long型別有64位,我們可以讓乙個字元佔一位,使用與
運算來判斷,或
運算來儲存
public
static
void
main
(string[
] args)
/** * 給英文本串去重
*/public
static
void
derepeatstring
(string t)
else
//左移運算,將b的n位置的bit位變成1
//這裡的1記住要加l,否則就是int32位的運算,會有問題
long m =
1l << n;
system.out.
println
("m = "
+ m)
;//如果與運算等於0,說明在這個bit位上原來是0,也就是原來沒有遍歷過這個字母if(
(b & m)==0
)else
} system.out.
println
(new
string
(cs));
}
結果:
a bc a bd cfse f s gh g h v u vo j o d x zzyyppq
面試題一串英文轉數字
最近看到這麼乙個題目 已知 zero,one,two,three,four,five,six,seven,eight,nine分別對應0,1,2,3,4,5,6,7,8,9,對每一段含有這幾種字串的字串進行轉換,如 輸入 nineeightsevensixfivefourthreetwoonezer...
css一串純數字或純英文無空格的字串強制換行
spanwhite space normal pre nowrap pre wrap pre line inherit white space 屬性設定如何處理元素內的空白 normal 預設。空白會被瀏覽器忽略。pre 空白會被瀏覽器保留。其行為方式類似 html 中的 pre 標籤。nowrap...
如何統計一串數字中,出現重複數的個數?
比如一串數字14,23,64,23,14,20,30其中14重複兩次,23重複兩次,其餘沒有重複。de clare sql varchar 1000 declare str varchar 100 set str 14,23,64,23,14,20,30 select sql select col,...