问题标题: 酷町堂:3990 30分

0
0
已解决
曹博扬
曹博扬
初级天翼
初级天翼
#include<iostream>
#include<string>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<sstream>
using namespace std;
string s;
bool p;
int c;
int main(){
    cin>>s;
    int i=0,j=s.size()-1;
    for(int i=0;i<s.size();i++){
        if(s[i]>='a'&&s[i]<='z')
            s[i]-=32;
    }
    while(i<j){
        if(s[i]!=s[j]&&p==false){
            cout<<"N"<<" ";
            p=true;
        }
        else
            c++;
        i++;
        j--;
    }
    if(p==false)
        cout<<"Y";
    else{
        if(s.size()%2==0)
            cout<<c;
        else
            cout<<c+1;
    }
    return 0;
}

找错!!


0
已采纳
李显晨
李显晨
中级启示者
中级启示者

这题要用双指标,判断函数在这:

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

主函数里这么写:

cin>>s;
    for(int i=0;i<s.size();i++){
        if(s[i]>='A'&&s[i]<='Z') s[i]+=32;
    }
    if(Judge(s)) cout<<"Y";
    else cout<<"N"<<" "<<cnt;

自己写定义

0
朱优扬
朱优扬
中级天翼
中级天翼

主函数:

    cin>>s;
    for(int i=0;i<s.size();i++)
        if(s[i]>='A'&&s[i]<='Z') 
            s[i]+=32;
    if(hui(s))  cout<<"Y";
    else    cout<<"N "<<cnt;

函数里面双指针

PS:函数里面的while循环要加个cnt++(直接另起一行写就完了)

我要回答