7-1 会文判断 分数 10 作者 陈海宁 单位 成都信息工程大学 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,判定给定的字符序列是
时间: 2024-10-21 16:14:56 浏览: 20
回文串还是非回文串。这通常通过比较字符串与其反转是否相等来实现。你可以采用双指针技术,一个从前往后遍历字符串(i),另一个从后往前遍历(j),同时检查对应位置的字符是否相等。如果发现有不匹配的字符,则立即返回false;当两个指针相遇或者超过边界仍然所有字符匹配时,说明该字符串是回文。
例如,对于输入 "madam",首先比较 'm' 和 'm' 是否相等,然后 'a' 和 'd','d' 和 'a',依此类推,最后因为所有字符都一一对应匹配,所以判断为回文。
以下是Python的一个简单实现:
```python
def is_palindrome(s):
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
# 测试示例
input_string = input("请输入一个字符串: ")
if is_palindrome(input_string):
print(f"{input_string} 是回文")
else:
print(f"{input_string} 不是回文")
```
相关问题
6-1 java数字字符串转化为整型数组 分数 10 作者 陈海宁 单位 成都信息工程大学 完成Transform方法,把一个由数字组成的字符串(String类型)转化为整型的数组。如果其中有其他字符,则整型对应的位置用“0”填充。
在Java中,可以创建一个名为`Transform`的方法,该方法接收一个`String`类型的输入,然后将其转换为包含整数的数组。我们可以使用`Character.isDigit()`方法检查每个字符是否为数字,并使用`Integer.parseInt()`将连续的数字字符组合成整数。对于非数字字符,我们将插入"0"到结果数组对应位置。下面是一个简单的示例:
```java
public class Main {
public static void main(String[] args) {
String input = "12abc345";
int[] result = Transform(input);
for (int i : result) {
System.out.print(i + " ");
}
}
public static int[] Transform(String str) {
int[] array = new int[str.length()];
int count = 0;
StringBuilder sb = new StringBuilder();
// 遍历字符串中的每一个字符
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) { // 如果字符是数字
sb.append(c); // 添加到StringBuilder中
if (count == array.length - 1 || !Character.isDigit(str.charAt(count + 1))) { // 当遇到下一个非数字字符或到达数组长度边界
array[count] = Integer.parseInt(sb.toString()); // 将StringBuilder内容转为整数并添加到数组
sb.setLength(0); // 清空StringBuilder
count++;
}
} else {
array[count++] = 0; // 非数字字符,用0填充对应位置
}
}
if (sb.length() > 0) { // 如果字符串最后还有未处理的数字
array[count] = Integer.parseInt(sb.toString());
}
return array;
}
}
```
阅读全文