迴文字符串:一個字符串,不管是從左往右,仍是從右往左,字符的順序都是同樣的(如abba,abcba等)python
判斷迴文字符串比較簡單,即用兩個變量left,right模仿指針(一個指向第一個字符,一個指向最後一個字符),函數
每比對成功一次,left向右移動一位,right向左移動一位,若是left與right所指的元素不相等則退出,最後比較ui
left與right的大小,若是left>right則說明是迴文字符串。spa
C語言版:指針
#include<stdio.h> #include<string.h> bool huiwen(char *c)//判斷是否爲迴文字符串 { int len=strlen(c); int left=0,right=len-1; while(left<=right) { if(c[left]==c[right]) { left++; right--; } else break; } if(left>right) return true; else return false; } int main() { char c[100]; printf("請輸入您要判斷的字符串:") scanf("%s",c); if(huiwen(c)) printf("Yes\n"); else printf("No\n"); return 0; }
python版:code
#嘗試用python判斷迴文字符串 while True: str=input("please input a string:")#輸入一個字符串 length=len(str)#求字符串長度 left=0#定義左右‘指針’ right=length-1 while left<=right:#判斷 if str[left]==str[right]: left+=1 right-=1 else: break; if left>right: print("yes") else : print("no")
使用函數判斷:blog
將字符串反序輸出保存與原字符串比較字符串
咱們使用切片功能翻轉文本。咱們已經瞭解了咱們能夠經過使用 seq[a:b] 來從位置 a 開
始到位置 b 結束來對序列進行切片 。咱們一樣能夠提供第三個參數來肯定切片的步長
(Step) 。默認的步長爲 1 ,它會返回一份連續的文本。若是給定一個負數步長,如 -1 ,
將返回翻轉過的文本。
input
def reverse(text): return text[::1] def is_palindrome(text): return text==reverse(text) something = input("Enter text:") if is_palindrome(something): print("Yes,it is a palindrome") else: print("No,it is not a palindrome")