Pages

2010年10月2日 星期六

Java String 依照單字出現次數/頻率高的依序印出

功能: 依照每個單字出現的次數,由大到小,排列印出。 假設: String oriString = "This is a book. That is a pencil" 輸出: is 出現 2 次 a 出現 2 次 This 出現 1 次 That 出現 1 次 book 出現 1 次 pencil 出現 1 次 程式碼: import java.util.regex.*; import java.util.*; public class StringSort { public static void main(String[] args){ String oriString = "This is a book. That is a pencil."; Pattern p = Pattern.compile("\\w[^\\.\\s]*"); Matcher m = p.matcher(oriString); Set<string> sortVerb...

Linking-List Implement

[轉載] from: http://www.cnblogs.com/oomusou/archive/2008/03/22/1117686.html Abstraction 使用C語言簡單的實現linked list,並用C++的std::vector實作出相同的功能作比較。 Introduction 學習資料結構,第一個要學的就是linked list,本文示範最簡單的linked list實現,包含建立與顯示,可把它當成linked list的標準範本,畢竟步驟都差不多。 一個基本的問題:為什麼需要linked list?若要將大量資料存到記憶體,你會想到什麼?第一個想到的就是array,但C語言是個靜態語言,array必須事先宣告大小,這樣compiler才能進行最佳化,若到時候沒用這麼多記憶體,就白白浪費記憶體了。或許你會說array可以配合malloc()變成動態array,但前提是你必須告訴malloc()要建立多大的array,若連要建立多大的陣列也不確定,而是在run-time看有多少資料就建立多大,這時連malloc()的動態array也不能用了,此時就得靠linked...

C語言指標範例(指標++)

C語言中最令初學者人頭大的指標,其實很容易記錯 指標的運算元順序是由右到左(書上寫的),實際來測試一下 #include<stdio.h> int data[2] = {100,200}; int moredata[2] = {300,400}; int main(void){ int * p1, * p2, * p3; p1 = p2 = data; p3 = moredata; printf(" *p1 = %d, *p2 = %d, *p3= %d\n", *p1, *p2, *p3); printf(" *p1 = %d, *p2 = %d, *p3= %d\n", *p1++, *++p2, (*p3)++); printf(" *p1 = %d, *p2 = %d, *p3= %d\n", *p1, *p2, *p3); //括號測試 printf("It is equal result...\n"); p1 = p2 = data; ...

C/C++[微小位元][數字&數字]

最近,因為面試的關係,想把一些東西弄清楚,所以做了一些測試: 以下是微小位元的測試,實際是就是二進位運算啦,考是算錯(怪怪) #include<stdio.h> int main(void){ int a = 44; int b = 55; int c = 33; int d = -20; printf("uni-micro operator: \n"); printf("a & b = %d\n", a & b); printf("b & c = %d\n", b & c); printf("c & d = %d\n", c & d); printf("b & b = %d\n", b & b); printf("a | b = %d\n", a | b); printf("double-micro operator: \n"); printf("a &&...