Leetcode 9. 回文数 / scala实现

题目

在这里插入图片描述


解决方案

解一:转换为字符串再进行判断

object Solution {
    
    
  def isPalindrome(x: Int): Boolean = {
    
    
    //  有负号必然不是
    if (x < 0)
      return false
    // 只有一个数字的数值肯定是
    if (0 <= x && x <= 9)
      return true
    val s = x.toString
    for (i <- 0 until s.length / 2)
      if (s(i) != s(s.length - i - 1))
        return false
    true
  }
}

解二:首先获取数字从小到大(个位、十位…)的每一位数值,然后计算反转后的对应的数值大小,如果反转前后数值大小相等说明是回文串

object Solution {
    
    
  def isPalindrome(x: Int): Boolean = {
    
    
     if (x < 0)
      return false
    if (0 <= x && x <= 9)
      return true
    var t = x
    var res = 0
    while (t != 0){
    
    
      res = res * 10 + (t % 10)
      t /= 10
    }
    res == x
  }
}

猜你喜欢

转载自blog.csdn.net/qq_42711381/article/details/121568211