首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

回文串判斷:字符串正反對稱性檢測算法與C語言實現

     編輯:關於C語言

問題描述

判斷輸入字符串是否為回文串(正讀反讀相同)。輸入第一行為測試用例數 n,隨後 n 行字符串(長度 ≤ 30)。每行輸出 "yes" 或 "no"。

回文串判斷算法

雙指針法:設置左指針 i=0,右指針 j=length-1,向中間移動比較字符。若所有對應位置字符相等則為回文。

優化:只需遍歷前半段,比較 string[i] 與 string[length-1-i]。

代碼實現

#include <stdio.h>
#include <string.h>

int main() {
    int i, flag, num, length;
    char string[101];

    scanf("%d", &num);
    getchar();

    while (num--) {
        gets(string);
        length = strlen(string);
        flag = 1;

        for (i = 0; i < length - i - 1; i++) {
            if (string[length - i - 1] != string[i]) {
                flag = 0;
                break;
            }
        }

        if (flag) printf("yes");
        else printf("no");

        if (num > 0) printf("\n");
    }
    return 0;
}

複雜度分析

  • 時間複雜度:O(n) 每字符串,n 為字符串長度
  • 空間複雜度:O(1) 僅使用常數額外空間

測試樣例

輸入:

4
level
abcde
noon
haha

輸出:

yes
no
yes
no
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved