NC141 判断回文_入门
描述
给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。
字符串回文指该字符串正序与其逆序逐字符一致。
数据范围:$0<n \leq 1000000$
要求:空间复杂度 $O(1)$,时间复杂度 $O(n)$
示例1
输入:”absba”
返回值:true
示例2
输入:”ranko”
返回值:false
示例3
输入:”yamatomaya”
返回值:false
示例4
输入:”a”
返回值:true
备注:
字符串长度不大于1000000,且仅由小写字母组成
关联企业
腾讯
阿里巴巴
字节跳动
关联职位
算法
研发
测试
前端
我的解析
翻转还相等,则是回文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import java.util.*;
public class Solution {
public boolean judge (String str) { return str.equals(new StringBuilder(str).reverse().toString()); } }
|
遍历判断是否对称:使用单指针
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import java.util.*;
public class Solution {
public boolean judge (String str) { for(int i=0,length=str.length();i<=length/2;i++){ if(str.charAt(i)!=str.charAt(length-1-i)){ return false; } } return true; } }
|
遍历判断是否对称:使用双指针
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import java.util.*;
public class Solution {
public boolean judge (String str) { for(int i=0,j=str.length()-1;i<=j;i++,j--){ if(str.charAt(i)!=str.charAt(j)){ return false; } } return true; } }
|