演算法 驗證回文串

2021-09-09 06:25:54 字數 1570 閱讀 8802

驗證回文串

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

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

示例 1:

輸入: "a man, a plan, a canal: panama"

輸出: true

示例 2:

輸入: "race a car"

輸出: false

演算法是乙個不斷優化的過程,也是乙個不斷學習進步的過程。演算法是乙個很好玩的過程。

第一遍:

class solution 

for (int i = 0,j =length-1; j > 0 && j>i;)

char endchar = string.charat(j);

if (!character.isdigit(endchar) && !character.isalphabetic(endchar))

if (headchar != endchar && (character.islowercase(headchar)? character.touppercase(headchar) : character.tolowercase(headchar)) != endchar) else

}return true;

}}

第四遍:

public static boolean ispalindrome(string s) 

for (int i = 0,j =length-1; j>i;) else if (! ((headchar >= 'a' && headchar<= 'z') || (headchar >= '0' && headchar<='9')))

char endchar = s.charat(j);

if (endchar >= 'a' && endchar<= 'z')else if (! ((endchar >= 'a' && endchar<= 'z') || (endchar >= '0' && endchar<='9')))

if (headchar != endchar ) else

}return true;

}

網上最優的算:

class solution 

char copy = s.tochararray();

char letterandnums = new char[copy.length];

int index = 0;

for(int i = 0; i < copy.length; i++)else if((copy[i] >= 'a' && copy[i] <= 'z'))

}letterandnums = arrays.copyofrange(letterandnums, 0, index);

int start = 0, end = letterandnums.length - 1;

while(start < end)

}return true;

}}

加油!

每日演算法 驗證回文串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false思路一 先把字串其他字元去掉,只保留...

演算法 驗證回文串(isPalindrome)

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false思路 1.首先判斷s是否為為空串或...

演算法小練 驗證回文串

title 演算法小練 驗證回文串 categories 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a ...