字串完美度

2021-06-19 23:35:04 字數 684 閱讀 3727



題目描述: 們要給每個字母配乙個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分配...