问题标题: 酷町堂:回文(word)

1
0
已解决
张恩泽
张恩泽
高级天翼
高级天翼

2747   回文(word)经验值:0

题目描述 Description

我们将正向拼写和反向拼写相同的串,称之为回文串。现在有一系列的串,请依次

判断它们是否是回文串。

输入描述 Input Description

第 1 行,1 个正整数 N,表示字符串数。
以下 N 行,每行一个字符串。

输出描述 Output Description

N 行,每行一个字符,是回文串输出 T,不是输出 F。

样例输入 Sample Input

3 123321 ABCBA ABCABC

样例输出 Sample Output

T T F

数据范围及提示 Data Size & Hint

1<=N<10
字符串的长度最大可达 100000

//CODE
//#include <bits/stdc++.h>
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
bool hw (string s) {
    int i = 0, j = s.size()-1;
    while (i <= j) {
        if (s [ i ] != s [ j ]) {
            return false;
        }
        i ++;
        j --;
    }
    return true;
} 
int main() {
    string s;
    int n;
    cin >> n;
    getchar ();
    for (int i = 1; i <= n; i ++) {
        cin >> s;
        if (hw ( s )) {
            cout << "T" << endl;
        }
        else {
            cout << "F" << endl;
        }
    }
    return 0;//好习惯!
}

本人60分代码如上


0
已采纳
李鑫羽
李鑫羽
初级光能
初级光能

把getchar ();删掉

李鑫羽在2020-08-22 08:53:36追加了内容

核心:

for(int i=1;i<=n;i++){
        cin>>s;
        if(prime_huwu(s)){
            cout<<"T"<<endl;
        }
        else{
            cout<<"F"<<endl;
        }
    }

函数:

bool prime_huwu(string s){
    int i=0,j=s.size()-1;
    while(i<=j){
        if(s[i]!=s[j]){
            return 0;
        }
        i++;
        j--;
    }
    return 1;

李鑫羽在2020-08-22 09:16:45追加了内容

for(int i=0;i<=n-1;i++){

        getline(cin,a);

        b="";

        for(int j=a.size()-1;j>=0;j--){

            b=b+a[j];

        }

        if(b==a){

            cout<<"T"<<endl;

        }

        else{

            cout<<"F"<<endl;

        }       

    }

0
王子健
王子健
初级天翼
初级天翼

字符串没有100000那么长,字符数组判断学过吗?

我要回答