老筆記整理四:字符串的完美度

今天在寵果網上發現一道題目,求一個字符串的完美度http://hero.pongo.cn/home/index
覺得這道題很有趣就挑戰了一下,結果沒有在規定的1小時里面寫完(笑),多花了10分鐘終于做出來了。

題目是這樣的:我們要給每個字母配一個1-26之間的整數,具體怎么分配由你決定,但不同字母的完美度不同, 而一個字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小寫,也就是說字母F和f的完美度是一樣的。 現在給定一個字符串,輸出它的最大可能的完美度。 例如:dad,你可以將26分配給d,25分配給a,這樣整個字符串最大可能的完美度為77。?

其實這道題目里有個幌子:這和字母其實沒有多大的關系。說白了,這道題就是求有幾個26,幾個25,幾個24。。。依次類推。所以我們要做的事就很明確了:先統計每個字符出現過多少次,再按次數從大到小排列,然后用26、25這些數字分別乘以出現的次數,最后求和就行了。以下是筆者的代碼,個人感覺不是很簡練,以后有空還會再修改。

?

 1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 5 #define Str_Max 2556 7 8 int perfect(const char *s) {9     int cc[26]={0},i,j,k,Sum=0,max,tst;
10 
11     for(i=0;s[i]!='\0';i++)
12         if(s[i]>='a'&&s[i]<='z')
13         {
14             cc[s[i]-'a']++; 15  } 16 else if(s[i]>='A'&&s[i]<='Z') 17  { 18 cc[s[i]-'A']++; 19  } 20 else 21 return 0; 22 23 for(i=0;i<26;i++) 24  { 25 max=0; 26 for(j=i+1;j<26;j++) 27 if(cc[j]>max) 28  { 29 max=cc[j]; 30 31 tst=cc[i]; 32 cc[i]=cc[j]; 33 cc[j]=tst; 34  } 35  } 36 37 38 for(i=0;cc[i]!=0;i++) 39 Sum+=cc[i]*(26-i); 40 41 return Sum; 42 } 43 44 int main() 45 { 46 char ts[Str_Max]; 47 int pft; 48 49 printf("give me a string:"); 50  gets(ts); 51 52 pft=perfect(ts); 53 if(pft) 54 printf("%d\n",pft); 55 else 56 printf("The string is wrong.\n"); 57 }

?

轉載于:https://www.cnblogs.com/shining77/p/7134242.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392137.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392137.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392137.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nlp構建_使用NLP構建自殺性推文分類器

nlp構建Over the years, suicide has been one of the major causes of death worldwide, According to Wikipedia, Suicide resulted in 828,000 global deaths in 2015, an increase from 712,000 deaths in 1990. This makes suicide the 10th leading cause of death world…

域名跳轉

案例&#xff1a;當訪問lsx.com網站&#xff0c;是我最早論壇的域名。回車之后會自動跳轉到lshx.com。 為什么藥lsx跳轉到lshx.com呢&#xff1f; 為了統一品牌。建議換成了lshx.com。所有之前的lsx.com就不要用了&#xff0c;就讓它跳轉到lshx.com。是因為之前lsx.com上有很多…

Elastic Stack 安裝

Elastic Stack 是一套支持數據采集、存儲、分析、并可視化全面的分析工具&#xff0c;簡稱 ELK&#xff08;Elasticsearch&#xff0c;Logstash&#xff0c;Kibana&#xff09;的縮寫。 安裝Elastic Stack 時&#xff0c;必須相關組件使用相同的版本&#xff0c;例如&#xff1…

區塊鏈去中心化分布式_為什么漸進式去中心化是區塊鏈的最大希望

區塊鏈去中心化分布式by Arthur Camara通過亞瑟卡馬拉(Arthur Camara) 為什么漸進式去中心化是區塊鏈的最大希望 (Why Progressive Decentralization is blockchain’s best hope) 不變性是區塊鏈的最大優勢和最大障礙。 逐步分權可能是答案。 (Immutability is blockchain’s…

編譯原理—語義分析(Java)

遞歸下降語法制導翻譯 實現含多條簡單賦值語句的簡化語言的語義分析和中間代碼生成。 測試樣例 begin a:2; b:4; c:c-1; area:3.14*a*a; s:2*3.1416*r*(hr); end #詞法分析 public class analyzer {public static List<String> llistnew ArrayList<>();static …

linux問題總結

linux問題總結 編寫后臺進程的管理腳本&#xff0c;使用service deamon-name stop的時候&#xff0c;出現如下提示&#xff1a;/sbin/service: line 66: 23299 Terminated env -i LANG"$LANG" PATH"$PATH" TERM"$TERM" "${SERVICEDIR}/${SE…

linux vi行尾總是顯示顏色,【轉載】Linux 下使用 vi 沒有顏色的解決辦法

vi 是沒有顏色的&#xff0c;vim 是有顏色的。我們可以通過 rpm -qa |grep vim 看看系統中是否安裝了下面 3 個 rpm 包&#xff0c;如果有就是安裝了 vim 。[rootBetty ~]# rpm -qa |grep vimvim-minimal-7.0.109-7.el5vim-enhanced-7.0.109-7.el5vim-common-7.0.109-7.el5如果…

時間序列分析 lstm_LSTM —時間序列分析

時間序列分析 lstmNeural networks can be a hard concept to wrap your head around. I think this is mostly due to the fact that they can be used for so many different things such as classification, identification or just simply regression.神經網絡可能是一個難…

關于計算圓周率PI的經典程序

短短幾行代碼&#xff0c;卻也可圈可點。如把變量s放在PI表達式中&#xff0c;還有正負值的處理&#xff0c;都堪稱經典。尤其是處處考慮執行效率的思想令人敬佩。 /* pi/41-1/31/5-1/71/9-…… */ #include <stdio.h> int main(){ int s1; float pi0.,n1.,…

華為產品技術學習筆記之路由原理(一)

路由器&#xff1a;路由器是一種典型的網絡連接設備&#xff0c;用來進行路由選擇和報文轉發。路由器與它直接相連的網絡的跳數為0&#xff0c;通過一臺路由器可達的網絡的跳數為1.路由協議&#xff1a;路由器之間維護路由表的規則&#xff0c;用以發現路由&#xff0c;生成路由…

Linux網絡配置:設置IP地址、網關DNS、主機名

查看網絡信息 1、ifconfig eth0 2、ifconfig -a 3、ip add 設置主機名需改配置文件&#xff1a; /etc/hosts /etc/sysconfig/network vim /etc/sysconfig/network NETWORKINGyes NETWORKING_IPV6no HOSTNAMEwendyhost Linux配置網絡 方法一&#xff1a; 1、使用setup命令進入如…

編譯原理—小型(簡化)高級語言分析器前端(Java)

實現一個一遍掃描的編譯前端&#xff0c;將簡化高級語言的部分語法成分&#xff08;含賦值語句、分支語句、循環語句等&#xff09;翻譯成四元式&#xff08;或三地址代碼&#xff09;&#xff0c;還要求有合理的語法出錯報錯和錯誤恢復功能。 測試樣例 beginwhile a<b do…

linux boot菜單列表,Bootstrap 下拉菜單(Dropdowns)簡介

Bootstrap 下拉菜單是可切換的&#xff0c;是以列表格式顯示鏈接的上下文菜單。這可以通過與 下拉菜單(Dropdown) JavaScript 插件 的互動來實現。如需使用下拉菜單&#xff0c;只需要在 class .dropdown 內加上下拉菜單即可。下面的實例演示了基本的下拉菜單&#xff1a;實例主…

dynamodb管理ttl_如何使用DynamoDB TTL和Lambda安排臨時任務

dynamodb管理ttlby Yan Cui崔燕 如何使用DynamoDB TTL和Lambda安排臨時任務 (How to schedule ad-hoc tasks with DynamoDB TTL and Lambda) CloudWatch Events let you easily create cron jobs with Lambda. However, it’s not designed for running lots of ad-hoc tasks,…

5g創業的構想_數據科學項目的五個具體構想

5g創業的構想Do you want to enter the data science world? Congratulations! That’s (still) the right choice.您想進入數據科學世界嗎&#xff1f; 恭喜你&#xff01; 那(仍然)是正確的選擇。 The market currently gets tougher. So, you must be mentally prepared f…

Microsoft Windows Phone 7 Toolkit Silverlight SDK XNA Game Studio 4.0 開發工具套件正式版下載...

Windows Phone 7開發工具套件包括Visual Studio 2010 Express for Windows Phone、Windows Phone模擬器、Expression Blend 4 for Windows Phone、XNA Game Studio 4.0和新增加的必應地圖SDK。 英文版的光盤鏡像&#xff1a;點擊下載 文檔中心&#xff1a;Windows Phone develo…

數據挖掘—Apriori算法(Java實現)

算法描述 &#xff08;1&#xff09;掃描全部數據&#xff0c;產生候選1-項集的集合C1&#xff1b; &#xff08;2&#xff09;根據最小支持度&#xff0c;由候選1-項集的集合C1產生頻繁1-項集的集合L1&#xff1b; &#xff08;3&#xff09;對k>1&#xff0c;重復執行步驟…

怎么匯報一周開發工作情況_如何在沒有經驗的情況下獲得第一份開發人員工作

怎么匯報一周開發工作情況Whether you’ve done a coding bootcamp or taught yourself, getting your first developer job with only a few months of coding under your belt is hard.無論您是完成了編碼訓練營還是自學了&#xff0c;僅靠幾個月的編碼就很難拿到第一份開發人…

vue.js的認知

Vue.js&#xff08;讀音 /vju?/, 類似于 view&#xff09; 是一套構建用戶界面的漸進式框架。 Vue 只關注視圖層&#xff0c; 采用自底向上增量開發的設計。 Vue 的目標是通過盡可能簡單的 API 實現響應的數據綁定和組合的視圖組件。 Vue 學習起來非常簡單&#xff0c;。轉載于…

c語言中的無符號字節,C語言之有符號數和無符號數

我們知道&#xff0c;在C語言中存在無符號數和有符號數(一些高級語言如Java里面是沒有無符號數的)&#xff0c;但是對于計算機而言&#xff0c;其本身并不區別有符號數和無符號數&#xff0c;因為在計算機里面都是0或者1&#xff0c;但是在我們的實際使用中有時候需要使用有符號…