]>
<< 1.24 基本的な構文エラーチェック | main | 2.6 2.7 2.8 ビット演算 >>
#include <stdio.h>
void squeeze(char s1[], char s2[]){
int i, j, k = 0;
for ( i = 0; s1[i] != '\0'; i++){
for (j = 0; s2[j] != '\0'; j++){
if (s1[i] == s2[j]) break;
}
if (s2[j] == '\0') s1[k++] = s1[i];
}
s1[k] = '\0';
}
int main(void){
char x[]="fjdfskalfjda";
char y[]="bcde";
squeeze(x,y);
printf("%s",x);
return 0;
}
def squeeze(s1,s2):
return ''.join([((c in s2 and [''])or [c])[0] for c in s1])
x = "abfjdksahfjdas"
y = "abcde"
print squeeze(x,y)
リストを文字のシーケンスに戻すには空列に join してやればよいのか。それにしてもこういうところでしゃれた文字列を思いつけないのが悲しいところだ。
http://www.panopticon.jp/mt/mt-tb.cgi/31
コメントする