PTA 1003 Quiero pasar! (Lenguaje C)

" Respuesta correcta " es el sistema más alegría respuesta automática tema sentencia dada. Este título proviene del PAT de la "respuesta correcta" gran entrega - acaba de leer la cadena cumplan las condiciones siguientes, la salida del sistema " respuesta correcta ", de lo contrario da salida a " la respuesta es incorrecta ."

Conseguir la " respuesta correcta condiciones" son:

Cadena debe tener sólo P、 A、 Ttres caracteres, no debe contener otros personajes;

  1. forma arbitraria tal como xPATxuna cadena puede conseguir "respuesta correcta", en el que xya sea la cadena vacía, o una cadena que consiste solamente de letras A;
  2. Si aPbTcson correctas, entonces aPbATca es correcta, que a, b, cson o cadena vacía o sólo por la letra Acadena compuesta.
  3. Ahora se pide escribir un programa PAT árbitro determina qué cadenas pueden conseguir "automáticamente respuesta correcta " es.

Formatos de entrada:

Cada prueba comprende una entrada de prueba. Línea 1 se da un número entero positivo n (<10), es el número de cadenas a detectar. A continuación, una fila para cada cadena, la longitud de cadena de no más de 100, sin espacios.

Los formatos de salida:

El resultado fila de detección para cada cadena, si la cadena se puede conseguir "respuesta correcta", la salida SÍ, NO lo contrario salida.

de entrada de la muestra:

8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA

Resultado de muestra:

YES
YES
YES
YES
NO
NO
NO
NO

Análisis: condiciones pueden responder a condición dada no está claro, pero se puede ver la muestra de entrada y de salida de acuerdo a lo siguiente: En primer lugar, que desea corregir Py Tsin duda tiene y el único en el PATse puede montar en cualquier posición A, pero que también tienen ciertas reglas. Desde entonces APAAATAAestá mal, AAPATAAes correcta, el análisis por un largo tiempo, y luego miró a una escuela de la hermana de los artículos encontrados, debe ser
Pantes de Ala cantidad * Py Tel número de A entre el = Tsiguiente Anúmero de
análisis detallado de los siguientes enlaces:
meter aquí

Después de aclarar este asunto se resuelva bien.

#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    char str[101];
    scanf("%d",&n);
    int i,j;

    for(i=0;i<n;i++){
	    int a=0;//记录A的数目 
	    int p=0;//P的个数 
	    int t=0;//T的个数 
	    int lp,lt;//P和T的位置 
        int flag=1;//循环控制 
        scanf("%s",str);
        for(j=0;str[j]!='\0';j++){
            if(str[j]=='A'){
                a++;
        	}
            else if(str[j]=='T'){
                t++;
                lt=j;
            }
            else if (str[j]=='P'){
                p++;
                lp=j;
            }
            else {
            	flag=0;
            	break;
			}
            
        }
        if(p==1 && t==1 && a!=0 && (lt-lp)!=1 && lp*(lt-lp-1)==strlen(str)-lt-1 ){
            printf("YES\n");
        }
        else{
            printf("NO\n");
        }
    }
    return 0;
}
Publicado cinco artículos originales · ganado elogios 0 · Vistas 59

Supongo que te gusta

Origin blog.csdn.net/Czrobe/article/details/104880502
Recomendado
Clasificación