一道很基礎的字串處理問題。
題目大意:
給你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...