五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
新竹市| 汾西县| 澎湖县| 新巴尔虎左旗| 杭锦旗| 望城县| 庆阳市| 涿鹿县| 分宜县| 定襄县| 青铜峡市| 措美县| 静安区| 五华县| 太谷县| 彝良县| 安康市| 措勤县| 鹤岗市| 夏邑县| 连山| 清涧县| 托克逊县| 内江市| 江油市| 桐庐县| 青海省| 策勒县| 岱山县| 泾源县| 光泽县| 丘北县| 龙口市| 会宁县| 谷城县| 竹北市| 郑州市| 格尔木市| 高密市| 金塔县| 兴文县|