如果从正向或反向读取字符串,则该字符串为回文。例如, 爸爸从向前或向后读取相同内容。所以爸爸这个词是回文。同样, 女士也是回文。
示例1:使用for循环检查回文
// program to check if the string is palindrome or not
function checkPalindrome(str) {
// find the length of a string
let len = string.length;
// loop through half of the string
for (let i = 0; i < len / 2; i++) {
// check if first and last string are same
if (string[i] !== string[len - 1 - i]) {
return 'It is not a palindrome';
}
}
return 'It is a palindrome';
}
// take input
let string = prompt('Enter a string: ');
// call the function
let value = checkPalindrome(string);
console.log(value);
输出
Enter a string: madam
It is a palindrome
在上述程序中, checkPalindrome()
函数从用户处获取输入。
- 字符串的
length
是使用length
属性计算的。 -
for
循环用于迭代字符串的一半。if
条件用于检查第一个和相应的最后一个字符是否相同。这个循环一直持续到字符串的一半为止。 - 在迭代过程中,如果字符串的任何字符与其对应的最后一个字符串不相等,则该字符串不被视为回文。
示例2:使用内置函数检查回文
// program to check if the string is palindrome or not
function checkPalindrome(str) {
// convert string to an array
let arrayValues = string.split('');
// reverse the array values
let reverseArrayValues = arrayValues.reverse();
// convert array to string
let reverseString = reverseArrayValues.join('');
if(string == reverseString) {
console.log('It is a palindrome');
}
else {
console.log('It is not a palindrome');
}
}
//take input
let string = prompt('Enter a string: ');
checkPalindrome(string);
输出
Enter a string: hello
It is not a palindrome
在上面的程序中,使用JavaScript中可用的内置方法检查回文。
-
split('')
方法将字符串转换为单个数组字符。let arrayValues = string.split(''); // ["h", "e", "l", "l", "o"]
-
reverse()
方法反转数组中的位置。// ["o", "l", "l", "e", "h"] let reverseArrayValues = arrayValues.reverse();
-
join('')
方法将数组的所有元素连接到字符串。let reverseString = reverseArrayValues.join(''); // "olleh"
- 然后使用
if...else
语句检查字符串和反向字符串是否相等。如果它们相等,则字符串为回文。
注意 :可以减少多行代码,并在一行中编写:
let reverseString = string.split('').reverse().join('');