基準時間限制:1 秒 空間限制:131072 kb 分值: 5 難度:1級演算法題
約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1-26之間的整數。
約翰不在乎字母大小寫。(也就是說字母f和f)的完美度相同。給定乙個字串,輸出它的最大可能的完美度。例如:dad,你可以將26分配給d,25分配給a,這樣整個字串完美度為77。
input
輸入乙個字串s(s的長度 <= 10000),s中沒有除字母外的其他字元。output
由你將1-26分配給不同的字母,使得字串s的完美度最大,輸出這個完美度。input示例
dadoutput示例
77
果然重做經典問題總是會有收穫,又學到了新的轉換方法。
開始自己手寫了乙個大小寫轉換表:
1 #include2 #include3 #include4 #include5using
namespace
std;67
int a[1000010];8
9int
main()
69int ans=26,sum=0,t=0
;70 map::reverse_iterator it;
71for(it=m.rbegin() ;it!=m.rend() ;it++)
74 sort(a,a+t);
75for(int i=t-1;i>=0;i--)
79 cout80return0;
81 }
略顯麻煩。
這是改進後的大小寫轉換:
1 #include2 #include3 #include4using
namespace
std;56
int a[30];7
8int
main()
22 sort(a,a+26
);23
int sum=0;24
for(int i=0;i<=25;i++)
27 cout28return0;
29 }
通過減'a'直接得到對應減一的數值並採用計入陣列,比上乙個方法簡便了許多,即使時間是一樣的。
1182 完美字串
1182 完美字串 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏關注約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1 26之間的整數。約翰不在乎字母大小寫。也就是說字母f和f 的完美度相...
51nod1182 完美字串
題意 給定乙個字串,然後可以隨意分配每個字元1 26的完美度,問最大完美度是多少。思路 貪心,開始太疏忽,沒有想到貪心,因為26肯定是分配給出現次數最多的那個,其他依次遞減。我用乙個陣列儲存每個字元出現的次數,然後在從大到小排序就行。include include include includeus...
51nod1182 完美字串
約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1 26之間的整數。約翰不在乎字母大小寫。也就是說字母f和f 的完美度相同。給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個字串完美...