250
class ChangingString {
public:
int distance(string A, string B, int K) {
const int size = A.size();
int d[ size ];
for(int i=0; i<size; ++i){
d[i] = abs( A[i] - B[i] );
}
sort( d, d + size );
reverse( d, d + size );
for(int i=0; i<K; ++i){
d[i] = (d[i] == 0);
}
return accumulate( d, d + size, 0 );
}
};
500
class KLastNonZeroDigits {
public:
string getKDigits(int N, int K) {
lli f = 1;
lli n = N;
lli mod = 1000000000LL;
bool flg = false;
for(lli i=1; i<=n; ++i){
f *= i;
while( f % 10 == 0 ) f /= 10;
flg = flg || ( f / mod );
f %= mod;
}
ostringstream oss;
oss << f;
string s = oss.str();
while( s[ (int)s.size() - 1 ] == '0' ){
s.erase( s.begin() + (int)s.size() - 1 );
}
while( K < s.size() ) s.erase( s.begin() );
if( flg ){
while( s.size() < K )s = "0" + s;
}
return s;
}
};
1050
0 件のコメント :
コメントを投稿