hdu Rikka with string (dfs)

#include<cstdio>

#include<cstring>

#include<iostream>

#include<algorithm>

using namespace std;

char a[1000+100];

int vis[1000+100];

int n;

int cnt;

int ok;

bool huiwen()

{

    int l=0;

    int r=strlen(a)-1;

    while(l<r)

    {

        if(a[l]!=a[r]) break;

        l++;

        r--;

    }

    //printf("%d %d\n",l,r);

    if(l>=r) return false;

    return true;

}

void dfs(int rt)

{



    if(ok==1) return ;

    if(rt>=cnt)

    {

       if(huiwen())

       {

           printf("%s\n",a);

           ok=1;

       }

       return ;

    }

    for(int i=0;i<26;i++)

    {

        a[vis[rt]]='a'+i;

        dfs(rt+1);

    }

}

int main()

{



    int i,j,k;

    while(scanf("%d",&n)!=EOF)

    {

        cnt=0;ok=0;

        scanf("%s",a);

        for(i=0;i<strlen(a);i++)

        {

            if(a[i]=='?')

            {

                vis[cnt++]=i;

            }

        }

        dfs(0);

        if(ok==0) printf("QwQ\n");

    }

    return 0;

}

  

你可能感兴趣的:(String)