最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

《編程思維與實(shí)踐》1026.字串非重復(fù)字符數(shù)排序

2023-04-07 09:49 作者:風(fēng)淺葉墨  | 我要投稿

題目


用結(jié)構(gòu)體存儲(chǔ)字符串的首地址和不同字符的個(gè)數(shù).

關(guān)鍵點(diǎn)在于不同字符個(gè)數(shù)的求法:

可以考慮利用ASCII碼與字符對(duì)應(yīng)的關(guān)系,開(kāi)一個(gè)數(shù)組初始化為0記錄每一個(gè)字符是否出現(xiàn):

每讀到一個(gè)字符,如果之前沒(méi)有存入(數(shù)組值為0)則值加1,否則值不變.

需要注意的點(diǎn):

不能在循環(huán)里開(kāi)一個(gè)數(shù)組,每循環(huán)一次讀一次然后存指針,因?yàn)檫@樣子有可能在循環(huán)開(kāi)數(shù)組中出現(xiàn)地址相同的情況,那么最后得到的所有內(nèi)容都會(huì)變成最后讀入的內(nèi)容.

代碼

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef?struct{int?difernumber;char*?data;}?Diferstring;

int?cmp(const?void?*a,const?void?*b)
{
????Diferstring?*m=(Diferstring*)a;
????Diferstring?*n=(Diferstring*)b;
????if(m->difernumber!=n->difernumber)???//不同字符數(shù)不同
????{
????????return?n->difernumber-m->difernumber;
????}
????else{
????????return?strcmp(m->data,n->data);??//按字典序
????}
}

int?main()
{
????int?T;
????scanf("%d",&T);
????for(int?i=0;i<T;i++)
????{
????????int?n;
????????scanf("%d",&n);
????????Diferstring?tab[n];
????????char?s[n][21];??//在循環(huán)外開(kāi)好數(shù)組
????????for(int?j=0;j<n;j++)
????????{
????????????scanf("%s",s[j]);??
????????????tab[j].data=s[j];
????????????tab[j].difernumber=0;

????????????int?count[128]={0};??//利用ASCII碼
????????????for(int?k=0;k<strlen(s[j]);k++)??//求出現(xiàn)幾種字符
????????????{
????????????????if(count[s[j][k]]==0)
????????????????{
????????????????????count[s[j][k]]++;
????????????????}
????????????}???????????
????????????for(int?k=0;k<128;k++)
????????????{
????????????????tab[j].difernumber+=count[k];????//不同字符數(shù)
????????????}
????????}
????????qsort(tab,n,sizeof(Diferstring),cmp);
????????printf("case?#%d:\n",i);
????????for(int?j=0;j<n;j++)
????????{
????????????printf("%s\n",tab[j].data);
????????}
????}?
????return?0;
}


《編程思維與實(shí)踐》1026.字串非重復(fù)字符數(shù)排序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
祥云县| 九江市| 星座| 延长县| 瑞丽市| 芷江| 云浮市| 佛山市| 桃源县| 通化市| 恩施市| 呼和浩特市| 莲花县| 延庆县| 嘉峪关市| 华池县| 章丘市| 五大连池市| 怀柔区| 阳谷县| 长子县| 大庆市| 新竹县| 高青县| 崇文区| 新民市| 婺源县| 新余市| 阜新| 凉山| 蒙阴县| 武邑县| 清原| 长阳| 页游| 广平县| 赞皇县| 左云县| 醴陵市| 陇川县| 盐城市|