從拾ACM poj1002解題報告

2021-10-01 01:53:28 字數 1239 閱讀 1890

一道很基礎的字串處理問題。

題目大意:

給你n個字串,其中有一些字串是等價的。因為:

a, b, and c 等於 2 

d, e, and f 等於 3 

g, h, and i 等於 4 

j, k, and l 等於 5 

m, n, and o 等於 6 

p, r, and s 等於 7 

t, u, and v 等於 8 

w, x, and y 等於 9 

所以:tut-glop 等於 888-4567

310-gino 等於 310-4466

最後需要你將這n個字串歸類,並統計每種字串有多少個

輸入樣例:

12

4873279

its-easy

888-4567

3-10-10-10

888-glop

tut-glop

967-11-11

310-gino

f101010

888-1200

-4-8-7-3-2-7-9-

487-3279

輸出樣例:

310-1010 2

487-3279 4

888-4567 3

解題思路:

因為每個字串都為7位,最後要求按照阿拉伯數字輸出。所以最大的數字也就只有9999999,直接犧牲記憶體建立乙個長度為10000000的陣列,陣列的下標就是該字串,陣列存放的內容就是該字串出現的次數。

列印時注意一下就好了printf("%03d-%04d %d\n", i/10000, i%10000, ar[i]);

#include #include using namespace std;

int ar[10000001] = ;

//列印結果

void print()

}if (flag)

}//將字串轉為數字

int stoi(char* s)else if ('a' <= s[i] && s[i] <= 'p')else if ('r' <= s[i] && s[i] <= 'y')

i++;

}return num;

}int main()

print();

return 0;

}

從拾ACM poj1001解題報告

事情一件件來,水題一道道刷。1001是一道典型的高精度問題,重點是處理字串。最後需要按照題目的輸出標準來輸出答案就可以了 include includeint output 120 第一位為1,方便計算 int m num是去掉小數點後的十進位制數字,比如95.23變為9523 因為我們要乘的數是固...

從拾ACM poj1006解題報告

警告 這不是一道水題 說真的,連著刷了5道水題,突然間碰到這道題還真的有點不適應。題目大意 有三個迴圈週期 23,28,33。再給你乙個起始日期 d 求 從d天後再過多少天三個週期能同時達到峰值?有木有乍一看很簡單,細想想卻又無從下手的趕腳?拋開這道題,我們先研究乙個很古老卻又很深奧的問題 中國剩餘...

從拾ACM poj1007解題報告

求字串的逆序數,並按逆序數大小排序輸出 題目大意 給出長度為n的m個字串 每個字串由a,c,g,t組成。按照每個字串的逆序數大小一次輸出每個字串 如下 include using namespace std typedef struct struct void nixushu struct data...