class Sortness { public: double getSortness(vector <int> a) { double sum = 0; for(int i=0; i<a.size(); ++i){ for(int j=0; j<a.size(); ++j){ if(i < j && a[i] > a[j])++sum; if(j < i && a[j] > a[i])++sum; } } return sum / (double)a.size(); } };450
class Arrows { public: int longestArrow(string s) { int mx = -1; for(int i=0; i<s.size(); ++i){ int cnt = 0; if( s[i] == '<' ){ ++cnt; if( i+1 < s.size() && ( s[i+1] == '=' || s[i+1] == '-' ) ){ for(int j=1; i+j<s.size() && s[i+1] == s[i+j]; ++j){ ++cnt; } } } if( s[i] == '>' ){ ++cnt; if( 0 <= i-1 && ( s[i-1] == '=' || s[i-1] == '-' ) ){ for(int j=1; 0<=i-j && s[i-1] == s[i-j] ; ++j){ ++cnt; } } } if( cnt )mx = max(mx, cnt); } return mx; } };1000
無理。
class NextPalindromicNumber { public: string getNext(string n) { if( count( n.begin(), n.end(), '9' ) == n.size() ){ fill( n.begin(), n.end(), '0' ); n[0] = '1'; n += '1'; return n; } string s = n.substr(0, n.size() / 2 + n.size() % 2); string t = n.substr(0, n.size() / 2); reverse( t.begin(), t.end() ); string S = s + t; reverse( s.begin(), s.end() ); cout << s << endl; ++s[0]; for(int i=0; i+1<s.size(); ++i){ if( '9' < s[i] ){ s[i] = '0'; ++s[i+1]; } } t = s; reverse( s.begin(), s.end() ); if( n.size() % 2 )t.erase( t.begin() ); string T = s + t; cout << S << ' ' << T << endl; if(n < S)return S; return T; } };
0 件のコメント :
コメントを投稿