パリンドロームの判定方法を効率的に行うには、次のようなアルゴリズムを使用することができます。
-
文字列の場合:
- 文字列を前から順に1文字ずつ比較し、対応する後ろの文字と同じかどうかを確認します。
- 比較する文字の範囲は、文字列の先頭から中央までです。
- 一致しない文字が見つかった場合、パリンドロームではありません。
- 一致する文字が全て見つかった場合、パリンドロームです。
-
数値の場合:
- 数値を文字列に変換します。
- 文字列の判定方法と同様に、前から順に1文字ずつ比較します。
以下に、いくつかのプログラミング言語でのコード例を示します。
Python:
def is_palindrome(string):
start = 0
end = len(string) - 1
while start < end:
if string[start] != string[end]:
return False
start += 1
end -= 1
return True
# 使用例
print(is_palindrome("level")) # True
print(is_palindrome("hello")) # False
Java:
public class PalindromeChecker {
public static boolean isPalindrome(String string) {
int start = 0;
int end = string.length() - 1;
while (start < end) {
if (string.charAt(start) != string.charAt(end)) {
return false;
}
start++;
end--;
}
return true;
}
// 使用例
public static void main(String[] args) {
System.out.println(isPalindrome("level")); // true
System.out.println(isPalindrome("hello")); // false
}
}
これらのコード例は、与えられた文字列がパリンドロームかどうかを判定するシンプルかつ効率的な方法です。このアルゴリズムを使用することで、パリンドロームの判定を高速に行うことができます。