如果给出一个15位数字,那么找到下一个回文的最佳方法是什么?

Vai*_*hav 6 c++ algorithm palindrome

在c ++中,找到给定15位数的下一个回文的最快逻辑是什么?例如下一个回文:134567329807541?

Pet*_*ham 16

  • 分割数为三个部分,head,mid,tail

    1345673 2 9807541

  • 反向head并将其与tail 3765431 进行比较

  • 如果reverse(head) <= tail(如果它们相等,则初始输入是回文,你想要下一个)

    • 如果mid < 9,增加中间
    • 否则增加head部分和设置mid := 0
  • 结果:= head mid reverse(head).

    1345673 3 reverse(1345673)=> 134567333765431

  • 这是一个练习:-) (4认同)