不開新陣列,一串英文本串,去除重複的字元

2021-09-24 15:52:15 字數 952 閱讀 6831

英文本元,也就是a-za-z

分別對應的ascii碼是97-12265-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,...