判斷字元陣列中是否所有的字元都只出現過一次

2021-09-30 18:06:11 字數 1325 閱讀 6105

【題目】給定乙個字元型別陣列chas,判斷chas中是否所有的字元都只出現過一次,請根據以下不同的兩種要求實現兩個函式。

【舉例】chas = [『a』,『b』,『c』],返回true;chas = [『1』,『2』,『1』],返回false。

【要求】1.實現時間複雜度為o(n)的方法。

​ 2.在保證額外空間複雜度為o(1)的前提下,請實現時間複雜度盡量低的方法。

/*

* 給定乙個字元型別陣列chas,判斷chas中是否所有的字元都只出現過一次,請根據以下不同的兩種要求實現兩個函式。

*/public

class

isunique

boolean

b =

newboolean

[256];

for(

int i =

0; i < chas.length; i++

) b[chas[i]]=

true;}

return

true;}

// 空間複雜度o(1),時間複雜度o(nlogn),利用了堆排序進行了一次排序,才開始判斷

public

boolean

isunique2

(char

chas)

heapsort

(chas)

;for

(int i =

1; i < chas.length; i++)}

return

true;}

public

void

heapsort

(char

chas)

for(

int i = chas.length -

1; i >

0; i--)}

public

void

heapify

(char

chas,

int index,

int heapsize)

swap

(chas, largest, index)

; index = largest;

left = index *2+

1;}}

public

void

heapinsert

(char

chas,

int index)

}public

void

swap

(char

chas,

int i,

int j)

}

5 7判斷字元陣列中是否所有的字元都只出現過一次

題目 給定乙個字元型別chas,判斷chas中是否所有的字元都只出現過一次,請根據以下不同的兩種要求實現兩個函式。實現public boolean isunique char chas boolean map newboolean 256 for int i 0 i chas.length i ma...

判斷字元陣列中是否所有的字元都只出現過一次

要求 在保證額外空間複雜度為o 1 的前提下,使得時間複雜度最低 思路 先排序,再遍歷陣列 考點 各個排序演算法的時間,空間複雜度 堆排序 public boolean isunique char chas system.out.println 1 建堆 buildstack chas for in...

判斷字元陣列中是否所有字元都只出現過一次

給定乙個字元型別陣列,判斷陣列中是否所有的字元都只出現過一次。使用字典儲存出現過的字元,遍歷陣列過程中,判斷每乙個字元是否出現過 def is unique s if s is none return true char map for c in s if c in char map return ...