编写一个shell程序,判断输入的字符串是否为回文。 不使用rev命令
时间: 2024-05-16 22:14:24 浏览: 121
可以使用循环和切片来实现字符串的反转和比较。下面是一个简单的shell程序,可以判断输入的字符串是否为回文:
```bash
#!/bin/bash
echo "请输入一个字符串:"
read str
len=${#str}
mid=$((len/2))
for (( i=0; i<mid; i++ )); do
j=$((len-i-1))
if [[ ${str:i:1} != ${str:j:1} ]]; then
echo "$str 不是回文"
exit
fi
done
echo "$str 是回文"
```
我们可以先读取用户输入的字符串,然后使用 `${#str}` 来获取字符串的长度。接着,我们计算出字符串的中间位置,然后使用循环和切片来比较字符串的左右两部分是否相等。如果不相等,就可以判断该字符串不是回文。如果循环执行完毕,就可以判断该字符串是回文。
相关问题
编写C语言程序判断输入字符串是否是回文
以下是一个简单的C语言程序,用于判断输入的字符串是否是回文:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for(i = 0; i < len; i++)
{
if(str[i] != str[len - 1 - i])
{
flag = 1;
break;
}
}
if(flag)
{
printf("%s 不是回文字符串\n", str);
}
else
{
printf("%s 是回文字符串\n", str);
}
return 0;
}
```
该程序首先要求用户输入一个字符串,然后使用 strlen 函数获取字符串的长度,接着使用 for 循环遍历字符串,判断字符串是否是回文。如果字符串是回文,则输出“是回文字符串”,否则输出“不是回文字符串”。
编写程序来判断一个字符串是否是回文 编写一个程序来判断一个字符串是否是回文 数据结构Java语言
在Java中,我们可以使用双指针法来判断一个字符串是否是回文。回文是指正读反读都一样的词语,例如 "level" 和 "racecar" 就是回文字符串。
以下是一个简单的Java函数示例:
```java
public class Main {
public static boolean isPalindrome(String str) {
// 确保输入不是null并且转换为小写
if (str == null || str.isEmpty()) {
return false;
}
str = str.toLowerCase(); // 对于大小写不敏感的判断
int left = 0; // 左指针
int right = str.length() - 1; // 右指针
while (left < right) {
// 如果左右字符不相等,则不是回文
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++; // 左指针右移
right--; // 右指针左移
}
// 如果所有字符都匹配了,那么它是回文
return true;
}
public static void main(String[] args) {
System.out.println(isPalindrome("A man, a plan, a canal: Panama")); // 输出: true
System.out.println(isPalindrome("hello")); // 输出: false
}
}
```
在这个程序中,我们初始化两个指针分别指向字符串的开始和结束,然后不断比较它们指向的字符是否相同。如果发现不相等,立即返回`false`;当两个指针相遇或交叉时,说明整个字符串是回文,返回`true`。
阅读全文