(1)“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。使用你熟悉的语言(允许伪代码)写出判断函数(数量不限,不考察性能),函数参数是字符串,函数返回值是布尔型。
时间: 2024-10-23 08:13:03 浏览: 12
Manacher算法:求解最长回文字符串,时间复杂度为O(N)
当然可以,这里提供几种常见编程语言的简单伪代码来实现判断字符串是否为回文串:
**Python:**
```python
def is_palindrome(s):
return s == s[::-1]
```
**JavaScript:**
```javascript
function isPalindrome(str) {
return str === str.split('').reverse().join('');
}
```
**Java (使用StringBuilder):**
```java
public boolean isPalindrome(String s) {
StringBuilder sb = new StringBuilder(s);
return sb.reverse().toString().equals(s);
}
```
**C++ (忽略空格和标点符号):**
```cpp
#include <algorithm>
#include <cctype>
bool isPalindrome(std::string s) {
std::transform(s.begin(), s.end(), s.begin(), ::tolower); // 转换为小写
int start = 0, end = s.length() - 1;
while (start < end) {
if (s[start] != s[end]) return false;
start++;
end--;
}
return true;
}
```
**C#:**
```csharp
public bool IsPalindrome(string s) {
int left = 0, right = s.Length - 1;
while (left < right)
{
if (char.ToLower(s[left]) != char.ToLower(s[right]))
return false;
left++;
right--;
}
return true;
}
```
所有这些函数的工作原理都是检查字符串从头到尾以及从尾到头读取是否相等。如果在任何时候发现不匹配,就立即返回`false`,否则返回`true`。
阅读全文