Блог пользователя Newaj_69

Автор Newaj_69, история, 7 лет назад, По-английски

I was trying to solve the problem http://www.spoj.com/problems/MINMOVE/ but unfortunately couldn't. My solution idea was:

1.First of all I checked whether all the character is same or not. If it is same then the answer is 0. Example: aaa answer should be 0.

2.Otherwise, I have concatenate the string at the back of the string and then added a "$" at last.

3.Then I build the suffix array (n*log(n)).

4.At last I traversed the suffix array whenever I got a value in the suffix array less then the string.size()/2 then I printed the value.

Now, I have no idea what to do.Any help or suggestions would be appreciated.

code: https://ideone.com/QHcYhW

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
7 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Good day to you,

does it necessary have to be your "approach"? I would rather recomment looking onto Booth's Algorithm algorithm, which could find the minimal rotation of string (and is pretty short to implement).

Hope it will help.

Good Luck & Have Nice Day ^_^

  • »
    »
    7 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

    Yes, I think it is necessary because then I will have the opportunity for rectifying my approach. But thank you. After solving this problem in my way , I will try to learn your suggested algorithm too.