私は2つの文字列を持っていa
ますb
. a
3番目の文字列を作成せずに回転するb
か、その逆かを知りたいです。
質問する
216 次
1 に答える
1
文字列 a は、L == len(a) == len(b) となるような L が存在し、a[ (i+j) % L] == b[i] for all 0 <= i < L.
c コードの場合 (L が文字列の共通の長さであると仮定します。a が b の回転である場合は 1 を返し、それ以外の場合は 0 を返します):
int i, j, is_rot;
for (i = 0; i< L; i++){
is_rot = 1;
for (j = 0; j<L; j++){
if (a[ (j + i) %L] != b[j] ){
is_rot = 0;
break;
}
}
if (is_rot) return 1;
}
return 0;
于 2012-08-26T12:37:08.863 に答える