題目描述: 們要給每個字母配乙個1-26之間的整數,具體怎麼分配由你決定,但不同字母的完美度不同, 而乙個字串的完美度等於它裡面所有字母的完美度之和,且不在乎字母大小寫,也就是說字母f和f的完美度是一樣的。 現在給定乙個字串,輸出它的最大可能的完美度。 例如:dad,你可以將26分配給d,25分配給a,這樣整個字串最大可能的完美度為77。
分析:該演算法的實現必定會採用排序來實現,從題目可知,要想完美度最大,那麼必須使得字串中字元數最多的字元的完美度最大,依此類推,最終得到的完美度必定最大。
演算法思想:(1)定義乙個陣列counts[26],用來統計每個字元的個數,分別從a-z。
(2)將counts陣列按非增序進行排序。
(3)從陣列的下標i=0開始,分別賦予它的字元完美度為26-i,然後計算counts[i]*(26-i)的和就是最大完美度了。
演算法實現如下:
#include#include#includeint perfect(const char *s)
; int temp=0;
int sum=0;
while(*s!='\0')
else if(*s>='a' && *s<='z')
s++;
}for(i=0;i<25;i++)
{for(j=i+1;j<26;j++)
{if(counts[i]
字串的完美度
我們要給每個字母配乙個1 26之間的整數,具體怎麼分配由你決定,但不同字母的完美度不同,而乙個字串的完美度等於它裡面所有字母的完美度之和,且不在乎字母大小寫,也就是說字母f和f的完美度是一樣的。現在給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個字串...
c實現字串的完美度
我們要給每個字母配乙個1 26之間的整數,具體怎麼分配由你決定,但不同字母的完美度不同,而乙個字串的完美度等於它裡面所有字母的完美度之和,且不在乎字母大小寫,也就是說字母f和f的完美度是一樣的。現在給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個字串...
龐果網 字串的完美度
ps 龐果好久沒出新題了。題目 我們要給每個字母配乙個1 26之間的整數,具體怎麼分配由你決定,但不同字母的完美度不同,而乙個字串的完美度等於它裡面所有字母的完美度之和,且不在乎字母大小寫,也就是說字母f和f的完美度是一樣的。現在給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配...