PAT Grade A-String Processing Type-1035 Password Ideas para resolver problemas

1035 Contraseña (20 puntos)

Inserte la descripción de la imagen aquí

Ideas

Use la función de búsqueda y reemplazo del tipo de cadena para eliminar, sin la necesidad de usar la engorrosa matriz de caracteres. El
tipo de cadena se usa para determinar si hay un elemento en la cadena y reemplazar un elemento

La matriz de tipo char solo se usa al transformar la matriz, y recuerde poner '\ 0' después de ella

El uso específico de la función de reemplazo y la función de búsqueda del tipo de cadena se indican a continuación. Reemplazar debe tener un símbolo para ser reemplazado antes de que pueda usarse, de lo contrario, se informará un error.

int main() {
    
    
    string a, b, c;
    cin >> a >> b >> c;
    int  len=b.length();
    while (a.find(b) != -1) 
    {
    
    
        int i = a.find(b);
        a.replace(i,len,c);
    }
    cout << a << endl;
    return 0;
}

Código

#include <bits/stdc++.h>
using namespace std;

int main()
{
    
    
    int n;
    scanf("%d",&n);
    string name[1005];
    string strs[1005];

    int num[1005]={
    
    0};
    int sum = 0;
    for (int i =0 ;i<n;i++)
    {
    
    
        cin>> name[i]>>strs[i];
        if (strs[i].find('1')!=-1 ||strs[i].find('l')!=-1||strs[i].find('0')!=-1||strs[i].find('O')!=-1)
        {
    
    
                sum+=1;
                num[i]=1;
        }
        
        while (strs[i].find("1") != -1)
            strs[i] = strs[i].replace(strs[i].find("1"),1, "@");
        while (strs[i].find("l") != -1)
            strs[i] = strs[i].replace(strs[i].find("l"),1, "L");
        while (strs[i].find("0") != -1)
            strs[i] = strs[i].replace(strs[i].find("0"),1, "%");
        while (strs[i].find("O") != -1)
            strs[i] = strs[i].replace(strs[i].find("O"),1, "o");
    }

    if(sum ==0)
        if(n==1)
            printf("There is %d account and no account is modified",n-sum);
        else
            printf("There are %d accounts and no account is modified",n-sum);
    else
    {
    
    
        cout<<sum<<endl;
        for (int i =0 ;i<n;i++)
            if(num[i]!=0)
                cout<<name[i]<<' '<<strs[i]<<endl;
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_43999137/article/details/114098504
Recomendado
Clasificación