半角英小文字で構成される文字列が2つあり、1つめには無く2つめにはある文字の数を調べるプログラミングを作りました。なお1:1対応なので同じ文字が複数あっても2つめのほうが多い場合剰余分がカウントされます。
例)abc,bca → 0, abcd,dcaae → 2
方法は一致したら大文字に変え最終的に小文字の個数を調べるのですが、文字数が増えるとどうしても処理が遅くなってしまいます。どうにか高速化する方法はないでしょうか?
c
1#include <stdio.h> 2#include <ctype.h> 3int main(void){ 4 int a,b,i,j,k,n=0; 5 char s[10000],t[10000]; 6 scanf("%d %d",&a,&b); //文字数の入力 7 scanf("%s",s); //1つめの文字列 8 scanf("%s",t); //2つめの文字列 9 for(i=0;i<a;i++){ 10 for(j=0;j<b;j++){ 11 if(s[i]==t[j]){ 12 t[j]=toupper(t[j]); //被ったら大文字に 13 break; 14 } 15 } 16 } 17 for(k=0;k<b;k++){ 18 if(islower(t[k])!=0) {n+=1;} //小文字の個数判定 19 } 20 printf("%d",n); 21 return 0; 22}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/10 13:45
2016/06/10 13:54
2016/06/10 13:56
2016/06/10 13:56
2016/06/10 14:10 編集
2016/06/10 14:13