刪除字串中重複的字元,例如,」good」去掉重複的字串後就變成」god」。
第一種方法:
「蠻力法」,最簡單的方法就是把這個字串看作是乙個字元陣列,對該陣列使用雙重迴圈進行遍歷,如果發現有重複的字元,就把該字元置為』\0』,最後再把這個字元陣列中所有的』\0』去掉,此時得到的字串就是刪除重複字元後的目標字串。
第二種方法:
空間換時間,由於常見的字元只有256個,可以假設此題字串不同的字元個數最多為256個,那麼可以申請乙個大小為256的int型別的陣列紀錄每個字元出現的次數,初始化都為0,把這個字元的編碼作為陣列的下標,在遍歷字元陣列時,如果這個字元出現的次數為0,那麼把它置為1;如果這個字元出現的次數為1,說明這個字元在前面已經出現過了,可以把這個字元置為』\0』,就實現了去重的目的。這種方法只需要進行一次遍歷,時間複雜度為o(n),但是需要額外申請256大小的空間。
package jbstring;
public class removeduplicate
for (int j = i + 1; j < len; j++)
// 把重複的字元置為'\0'
if (c[i] == c[j]) }}
int l = 0;
// 去掉'\0'
for (int i = 0; i < len; i++)
}return new string(c, 0, l);
}public static string removedaplicate(string str)
for(i = 0; i < len; i++)
flags[index] |= (1<}
int l = 0;
for(i = 0; i < len; i++)
}return new string(c,0,l);
}public static void main(string args)
}
如何刪除字串中重複的字元
預備知識 0表示整數,0 表示0字元,0 表示ascii碼值為0的字元 如果是 字串陣列 轉 字串 只能通過迴圈,沒有其它方法string str stringbuffer sb new stringbuffer for int i 0 i str.length i string s sb.tost...
刪除字串中重複字元。
題目 刪除字串中重複字元。如果可以,優先刪除重複字元中排在比他小字元前面的字元。比如,輸入 bbcacdww 輸出 bacdw 分析 如果根本不允許開設陣列,則只能就地進行字串去重,那麼可以依次訪問字串中的字元,並刪除從該字串開始到結尾的所有相同字元。時間複雜度為o n 2 void removed...
刪除重複字串
oj.h ifndef oj head define oj head int getresult const char input,char output endif oj.cpp include oj.h description 給定乙個字串,將字串中所有和前面重複多餘的字元刪除,其餘字元保留,輸...