判断一个数是否为对称数或对称字符串

判断一个数是否为对称数,如:123321,2332,abccba等等。

分析:1.字符串长度必须大于1;

         2.字符串长度必须为偶数;

思路:将字符串截成两个等长字符串分别放到两个字符数组里,然后进行字符比较,得出结果

public boolean testIn(String string)
{
     // TODO Auto-generated method stub
     int lenght = string.length();
     if (lenght % 2 == 0 && lenght != 0)
     {
          char[] ch1 = string.substring(0, lenght / 2).toCharArray();
          char[] ch2 = string.substring(lenght / 2, lenght).toCharArray();
          int i = 0;
          int j = lenght / 2 - 1;
          while(ch1[i] == ch2[j])
          {
               if (j == 0)
               {
                    return true;
               }
               i++;
               j--;
          }
     }
     return false;
}

 

### 编程实现检查输入字符串是否为回文 #### C语言中的实现方法 在C语言中,可以采用双指针法来判断一个字符串是否为回文。通过`gets_s`函安全地获取用户输入的字符串,并利用循环结构对比字符组两端对应的字符是否相同完成判定逻辑[^5]。 ```c #include<stdio.h> #include<string.h> int main() { char ch[100]; int i, len; gets_s(ch); len = strlen(ch); for (i = 0; i < len / 2; i++) { if (ch[i] != ch[len - i - 1]) { printf("不是回文\n"); goto L1; } } printf("是回文\n"); L1: return 0; } ``` 此段代码首先定义了一个长度不超过99个字符加终止符'\0'的字符组用来存储待检测字符串;接着调用了库函`strlen()`计算其实际有效位以便后续操作;最后进入for循环逐项比较首尾对应位置上的字母直至中间相遇为止——只要遇到一对不同的就立即输出否定结论并结束整个过程;反之则说明满足条件从而给出肯定答复。 #### Python语言中的实现方式 Python提供了一种更为简洁优雅的方式来处理这个问题。下面的例子展示了怎样把原始字符串转换成忽略大小写的版本再反转并与原版做全等测试: ```python my_str = 'aIbohPhoBiA' # 转换成适合不区分大小写比较的形式 my_str = my_str.casefold() # 反转字符串 rev_str = reversed(my_str) if list(my_str) == list(rev_str): print("The string is a palindrome.") else: print("The string is not a palindrome.") ``` 这里先是对给定字符串进行了统一化处理(`casefold`)以消除可能存在的大小写字母差异影响最终结果准确性的问题;之后借助内置工具`reversed()`轻松实现了序列倒置效果;最后一步就是简单的列表成员逐一匹配验证工作了[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值