Comparación de cadenas [蓝 桥 杯]

Enlace de tema: Límite de tiempo de comparación de cadenas
: 1 segundo Límite de memoria: 256 MB

Descripción del título:
Dadas dos cadenas que constan solo de letras mayúsculas o minúsculas (con una longitud entre 1 y 10), la relación entre ellas es uno de los siguientes 4 casos:
  1: La longitud de las dos cadenas no es Espere. Por ejemplo, Beijing y Hebei
  2: las dos cadenas no solo tienen la misma longitud, sino que los caracteres en las posiciones correspondientes son exactamente iguales (distinguen entre mayúsculas y minúsculas), como Beijing y Beijing
  3: las dos cadenas tienen la misma longitud y los caracteres en las posiciones correspondientes son solo indistinguibles Solo bajo la premisa de capitalización puede ser completamente consistente (es decir, no satisface el Caso 2). Por ejemplo, beijing y BEIjing
  4: las dos cadenas tienen la misma longitud, pero incluso si no distingue entre mayúsculas y minúsculas, las dos cadenas no pueden ser coherentes. Por ejemplo, Beijing y Nanjing
  programan para determinar a cuál de estos cuatro tipos pertenece la relación entre las dos cadenas de entrada y dan el número del tipo.
Entrada:
consta de dos líneas, cada línea es una cadena
Salida:
solo hay un número, que indica el número de relación de las dos cadenas

Entrada de muestra:
BEIjing
beiJing
Salida de muestra:
3

El significado del título: El significado del título es comparar dos cadenas para ver a qué categoría pertenecen y generar el número de relación que representa la cadena.
Idea: Simplemente compare, comience con la comparación de longitud, el tercer requisito es ignorar el caso para determinar si son iguales, tomamos prestadas dos cadenas temporales, convertimos las dos cadenas originales a minúsculas o mayúsculas y las comparamos. Pero (convertí a minúsculas).

Inserte la descripción de la imagen aquí
Código anterior:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
    string s1,s2;
    while(cin>>s1>>s2)
    {
    
    
        //cout<<s1<<endl;
        //cout<<s2<<endl;
        string ss1,ss2; // 临时的字符串,存放装换为小写的字符串
        ss1=s1;
        ss2=s2;
        int l1=s1.length();
        int l2=s2.length();
        for(int i=0; i<l1; i++)
        {
    
    
            if(s1[i]>='A'&&s1[i]<='Z')
            {
    
    
                ss1[i]=s1[i]+32; //转换为小写
            }
        }
        for(int i=0; i<l2; i++)
        {
    
    
            if(s2[i]>='A'&&s2[i]<='Z')
            {
    
    
                ss2[i]=s2[i]+32;
            }
        }
        //cout<<ss1<<endl;
        //cout<<ss2<<endl;
        if(l1!=l2)
            cout<<1<<endl;
        else if(s1==s2)
            cout<<2<<endl;
        else if(ss1==ss2)
            cout<<3<<endl;
        else
            cout<<4<<endl;
    }
    return 0;
}

No te olvides de darle Me gusta después de leerlo, ¡gracias por tu apoyo!
Si está en una terminal de computadora, también puede ver la "conexión triple de una tecla" en la esquina inferior derecha, el ícono es el siguiente, haga clic en él a la derecha [jaja] ¡


Gracias por su apoyo!
Inserte la descripción de la imagen aquí
¡Venga!

¡Trabajar juntos!

Keafmd

Supongo que te gusta

Origin blog.csdn.net/weixin_43883917/article/details/108873271
Recomendado
Clasificación