首页 > 试题广场 >

判断是否为回文字符串

[编程题]判断是否为回文字符串
  • 热度指数:100433 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。

字符串回文指该字符串正序与其逆序逐字符一致。

数据范围:
要求:空间复杂度 ,时间复杂度
示例1

输入

"absba"

输出

true
示例2

输入

"ranko"

输出

false
示例3

输入

"yamatomaya"

输出

false
示例4

输入

"a"

输出

true

备注:
字符串长度不大于1000000,且仅由小写字母组成
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param str string字符串 待判断的字符串
 * @return bool布尔型
 */
function judge( str ) {
    // write code here
    const tmp=str.split('').reverse().join('');
    if(str===tmp){
        return true;
    }
    return false;
}

发表于 2022-05-07 16:26:08 回复(0)
双指针,从两端向中间
function judge( str ) {
    // write code here
    let left = 0, right = str.length - 1
    while(left <= right){
        if(str[left] !== str[right]){
            return false
        }else{
            left ++
            right --
        }
    }
    return true
}


发表于 2022-04-15 10:04:28 回复(0)
var isPalindrome = function(s) {
   s = s.toLocaleLowerCase().match(/[a-z0-9]+/g)
   if(!s)return true;
   s = s.join('');
   let left = 0;
   let right = s.length-1;
   while(left<=right){
     if(s[left]!== s[right]) return false;
     left++;
     right--;
   }
   return true;
}


发表于 2021-12-25 11:58:02 回复(0)
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param str string字符串 待判断的字符串
 * @return bool布尔型
 */
function judge( str ) {
    // write code here
    var len = str % 2 == 0 ? (str.length / 2) - 1 : Math.floor(str.length / 2)
    var arr = str.split('')
    for(var i = 0; i < len; i++){
        if(arr[i] != arr[arr.length - i - 1]){
            return false
        }
    }
    return true
}
module.exports = {
    judge : judge
};
发表于 2021-08-21 20:57:51 回复(0)
//依据双指针实现
function judge( str ) {
    // write code here
    var arr = str.split('')
    if(arr.length == 1) return true
    var start = 0, end = arr.length - 1
    while(start < end){
        if(arr[start] != arr[end]) {
            return false
        } else {
          start ++
          end --
        }
        return true
    }
}

发表于 2021-08-11 21:59:02 回复(0)
function judge( str ) {
    var str1=str.split('').reverse().join('')
    return str1==str
    }
module.exports = {
    judge : judge
};
发表于 2021-07-18 16:27:28 回复(0)
function judge( str ) {
    // write code here
    var len = str.length - 1;
    var num = Math.floor((len+1)/2);
    for(var i = 0; i < num; i++){
        if(str[i] != str[len-i]){
            return false;
        }
    }
    return true;
}

发表于 2021-04-24 11:14:01 回复(0)
function judge( str ) {
    // write code here
    return str == str.split('').reverse().join('');
}
这难道不是js最简单的解法吗?
发表于 2021-04-13 21:54:51 回复(0)
function judge( str ) {
    if(str==='') return false
    
    var begin=0
    var end=str.length-1
    var flag=true
    while(begin<=end){
        if(str[begin]!==str[end]){
            flag=false
        }
        begin++
        end--
    }
    return flag
}


发表于 2021-03-02 09:29:14 回复(0)
双指针
function judge( str ) {
    // write code here
    let len = str.length
    if(len === 0) return true
    let start = 0,end = len -1
    while(start<end){
        if(str[start]!==str[end]) return false
        start++
        end--
    }
    return true
    }


发表于 2020-12-22 15:46:51 回复(0)