LeetCode 5933. k 镜像数字的和 一个回文数计算下一个回文数

1、通过一个回文数计算下一个回文数:

long long NextMirror(long long num)

{
  string s=to_string(num);
  int n=s.size();
  for(int i=(n-1)/2;i>=0;i--)
  {
    if(s[i]!='9')
    {
      char tmp=s[i]+1;
      s[i]=tmp;
      s[n-1-i]=tmp;
      for(int j=i+1;j<=(n-1)/2;j++)
      {
        s[j]='0';
        s[n-1-j]='0';
      }
    return stoll(s);
    }
  }
  long long ans=1;
  for(int i=0;i<n;i++)
  ans*=10;
  return ans+1;
}

2、记录数字的k进制时,使用string而不是vector<int>或vector<char>
vector用于内置类型时,性能很低

 

posted @ 2021-12-08 19:59  80k  阅读(54)  评论(0)    收藏  举报