判斷迴文字符串(c,python)

迴文字符串:一個字符串,不管是從左往右,仍是從右往左,字符的順序都是同樣的(如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")
相關文章
相關標籤/搜索