日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串

發布時間:2023/12/2 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

一、題目描述

1.1 題目

驗證回文串

給定一個字符串,驗證它是否是回文串,只考慮字母和數字字符,可以忽略字母的大小寫。

說明:本題中,我們將空字符串定義為有效的回文串。

示例 1:

輸入: "A man, a plan, a canal: Panama"

輸出: true

示例 2:

輸入: "race a car"

輸出: false

1.2 知識點

雙指針

1.3 題目鏈接

二、解題思路

2.1 解題思路

解題的思路比較簡單,首先將字符串中的非法字符(除 0-9 a-z A-z 以外的字符)替換掉,然后將大寫字母轉換為小寫字母,便于后續的比較,最后使用雙指針從從兩端向中間邊移動邊對比即可。

這里多說一句,其實也可以不進行預處理(將非法字符替換掉),可以在雙指針移動比較的過程中進行替換,這樣就可以在一遍遍歷的情況下完成驗證。還有就是對于評論中提供的方法二,代碼簡潔了很多,但是效率卻是方法一的十多倍,因此簡潔的代碼不意味著高效率。

三、實現代碼

3.1 代碼實現一(2ms)

class Solution {

public boolean isPalindrome(String s) {

char[] chars = s.toCharArray();

int start = 0, end = 0;

// 替換非法字符

for (int i = 0; i < chars.length; i++) {

if ((chars[i] >= '0' && chars[i] <= '9') || (chars[i] >= 'a' && chars[i] <= 'z'))

chars[end++] = chars[i];

else if (chars[i] >= 'A' && chars[i] <= 'Z')

chars[end++] = (char) (chars[i] - 'A' + 'a');

}

end--;

// 驗證回文串

while (start < end) {

if (chars[start] != chars[end]) return false;

start++;

end--;

}

return true;

}

}

3.2 代碼實現二(25ms)

class Solution {

public boolean isPalindrome(String s) {

if (s == null || s.length() == 0)

return true;

String str = s.replaceAll("[^0-9a-zA-Z]", "").toLowerCase();

for (int i = 0, j = str.length() - 1; i < j; i++, j--) {

if (str.charAt(i) != str.charAt(j))

return false;

}

return true;

}

}

楊小帆_

發布了256 篇原創文章 · 獲贊 32 · 訪問量 3萬+

私信

關注

標簽:面試題,Java,chars,解題,str,題目,代碼,TOP,回文

來源: https://blog.csdn.net/qq_40697071/article/details/103978208

總結

以上是生活随笔為你收集整理的java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。