NOI1.7答案(1~20)

                                    NOI//1.7 字符串基础
01

#include<bits/stdc++.h>
using namespace std;
int main ()
{
    char s[255] ;
    gets(s);
    
    int len = strlen(s);
    
    int count  = 0;
    for(int i = 0; i < len ;i++)
    {
        if( s[i] - '0' <= 9 &&  s[i] - '0' >= 0 )
        count ++ ;
    }
    cout << count << endl;
    return 0;

02

#include<iostream> 
#include<cstring> 
#include<stdio.h>
 
using namespace std; 
main () 

    int  a[27] = {0};
    char c[100005];
    cin >> c;
    char b;
    int len = strlen(c);
 
    for(int i = 0; i < len; i++)
    {
        a[ c[i]-'a' ]++;
    }
    int flag = 0;
    for(int i = 0; i < len; i++)
    {
        if(a[c[i]-'a'] == 1)
        {
            b = c[i];
            flag = 1;
            break;
        }
    }
    if(!flag)
    cout << "no" ;
    else
    cout << b;
    
}
03

#include<iostream> 
#include<cstring> 
#include<string>
 
using namespace std; 
main () 

 
    char str1[505],str2[505];
    double Similar;
    cin >> Similar;
    cin >> str1;
    cin >> str2;
    double count = 0;
    double len = strlen(str1); 
    for(int i = 0; i < len; i++)
    {
        if( str1[i] == str2[i])
        count ++;
    }
    if(Similar > count/len)
    cout << "no";
    else
    cout << "yes";
}
04

#include<iostream> 
#include<cstring> 
#include<string>
 
using namespace std; 
main () 

    char a[10],b[10];
    int t;
     cin >> t; 
    while (t--)
    {
        cin >> a;
        cin >> b;
 
        if(a[0] == b[0])
        cout << "Tie" << endl;
        else if( b[0] == 'S' && a[0] == 'R')
        cout << "Player1" << endl;
        else if( b[0] == 'P' && a[0] == 'S')
        cout << "Player1" << endl;
        else if( b[0] == 'R' && a[0] == 'P') 
        cout << "Player1" << endl;
        else
        cout << "Player2" << endl;
         
    }
    
}
05

#include<iostream> 
#include<cstring> 
#include<string>
 
#include<stdio.h>
using namespace std; 
main () 

    char a[105];
    char c;
    gets(a);
    int len = strlen(a);
    for(int i = 0; i < len; i++)
    {
            c = a[i] + a[(i+1)%len];
            cout << c;
    }
}
06

#include<iostream> 
#include<cstring> 
#include<string>
 
#include<stdio.h>
using namespace std; 
main () 

    char a[25];
    cin >> a;
    int len = strlen(a);
    int i, flag = 0;
    for( i = 0; i < len; i++)
    {
        if(a[0] - '0' <= 9 && a[0] - '0' >= 0)
        {
            flag = 1;
            break;
        }
        else if(a[i] >= 'A' && a[i] <= 'Z')
        {
            continue;
        } 
        else if( a[i] >= 'a' && a[i] <= 'z')
        {
            continue;
        }
        else if( a[i] >= '0' && a[i] <= '9')
        {
            continue;
        }
        else if( a[i] == '_')
        continue ;
        else
        flag = 1;
    }
    if(flag)
    cout << "no" ;
    else 
    cout << "yes" ;
}
07

#include<iostream> 
#include<cstring> 
#include<string>
 
#include<stdio.h>
using namespace std; 
main () 

    char a[255];
    scanf("%s",&a);
    int len = strlen(a);
    for(int i = 0; i < len; i++)
    {
        if(a[i] == 'A')
        a[i] = 'T';
        else if( a[i] == 'T')
        a[i] = 'A';
        else if( a[i] == 'G')
        a[i] = 'C';
        else
        a[i] = 'G';
    }
    cout << a;
}
08

#include<iostream> 
#include<cstring> 
#include<string>
 
#include<stdio.h>
using namespace std; 
main () 

    char a[35];
    cin >> a;
    int len = strlen(a);
    char ch,c;
    cin >> ch >> c;
    for(int i = 0; i < len; i++)
    {
        if(a[i] == ch)
        a[i] = c;
    }
    cout << a;
}
09

#include<iostream> 
#include<cstring> 
#include<string>
 
#include<stdio.h>
using namespace std; 
main () 

    char a[85];
    gets(a);
    int len = strlen(a);
    
    
    for(int i = 0; i < len; i++)
    {
        if(a[i] == 'z')
        {
            a[i] = 'a';
        
        }
        else if(a[i] == 'Z')
        {
            a[i] = 'A';
            
        }
        else if( a[i] <= 'y' && a[i] >= 'a' )
        a[i] = a[i] + 1; 
        else if (a[i] <= 'Y' && a[i] >= 'A')
        a[i] = a[i] + 1;
        else 
        a[i] = a[i];
    }
    cout << a;
}
10

#include<iostream> 
#include<cstring> 
#include<string>
 
#include<stdio.h>
using namespace std; 
main () 

    char a[85];
    gets(a);
    int len = strlen(a);
    
    
    for(int i = 0; i < len; i++)
    {
        
        if (a[i] <= 'Z' && a[i] >= 'A')
        a[i] = (a[i] - 'A' - 5 + 26) % 26  + 65;
        else 
        a[i] = a[i];
    }
    cout << a;
}
11

#include<iostream>
#include<cstring>
using namespace std;
 
 
int main ()
{
    char a[26] ,b[26];
    bool c[26] ,d[26];
    memset(a, '\0', sizeof(a));
    memset(b, '\0', sizeof(b));
    memset(c, 0, sizeof(c)); 
    memset(d, 0, sizeof(d)); 
    string s1, s2, s3;
    cin >> s1 >> s2 >> s3;
    int s1len = s1.length();
    for (int i = 0; i < s1len; i++) 
    {
        if(a[s1[i] - 'A'] == '\0')
            a[s1[i] - 'A'] = s2[i];
            
        else if(a[s1[i] - 'A'] != '\0' && s2[i] != a[s1[i] - 'A'])
        {
            cout << "Failed";
            return 0;
        }
    }
    
    for(int i = 0 ; i < s1.length(); i++)
    {
        c[s1[i] - 'A'] = 1;
        d[s2[i] - 'A'] = 1;
    }
    
    for(int i = 0; i < 26 ; i++){
        if(c[i] != 1 || d[i] != 1)
        {
            cout << "Failed";
            return 0;
        }
    }
    
    
    for (int i = 0; i < s1len; i++)
    {
        if(b[s2[i] - 'A'] == '\0')
        b[s2[i] - 'A'] = s1[i];
        
        else if(b[s2[i] - 'A'] != '\0' && s1[i] != b[s2[i] - 'A'])
        {
            cout << "Failed";
            return 0;
        }
    }
    
    
    int s3len = s3.length();
    for(int i = 0; i < s3len ; i++)
    {
        if(a[s3[i] - 'A'] == '\0')
        {
            cout << "Failed";
            return 0;
        }
    }
 
    for(int i = 0; i < s3len ; i++)
    {
        cout << a[s3[i] - 'A'];
    }
    
    
}
12

#include<iostream>
#include<string.h>
#include<cstring>
using namespace std;
int main (){
    char a[52];
    char b[52];
    cin >> a;
    int len = strlen(a);
    for (int i = 0; i < len ; i++){
        if(a[i] - 'a' >= 0 && a[i] - 'z' <= 25)
        {
            a[i] = (a[i] - 'a' + 3) % 26 + 97;
            a[i] = a[i] - 32;
        } 
        else if(a[i] - 'A' >= 0 && a[i] - 'Z' <= 25)
        {
            a[i] = (a[i] - 'A' + 3) % 26 + 65;
            a[i] = a[i] + 32;
        }    
    }
    for(int i = 0; i < len;i++)
    {
        b[i] = a[len - i - 1];
    }
    for(int i = 0;i < len ;i++)
    cout << b[i];
    return 0;

13

#include<iostream>
#include<string.h>
#include<cstring>
using namespace std;
int main (){
    char a[100];
    gets(a);
    int len = strlen(a);
    for (int i = 0; i < len ; i++){
        if(a[i] - 'a' >= 0 && a[i] - 'z' <= 25)
        {
            a[i] = a[i] - 32;
        } 
        
        else 
        a[i] = a[i];
    }
    cout << a;
    return 0;

14

#include<iostream>
#include<string.h>
#include<cstring>
using namespace std;
int main (){
    char a[88];
 
    cin.get(a,85);
    int len = strlen(a);
    for (int i = 0; i < len ; i++){
        if(a[i] - 'a' >= 0 && a[i] - 'z' <= 25)
        {
            a[i] = a[i] - 32;
        } 
        else if(a[i] - 'A' >= 0 && a[i] - 'Z' <= 25)
        {
            a[i] = a[i] + 32;
        }    
        else 
        a[i] = a[i];
    }
    cout << a;
    return 0;

15

#include<bits/stdc++.h>
using namespace std;
int main (){
    
    int n;
    cin >> n;
    while (n--)
    {
        char a[28];
        
        cin >> a;
        int len = strlen(a);
        if(a[0] >= 'a'  && a[0] <= 'z' )
            a[0] -=  32;
        else
            a[0] = a[0];
        for (int i = 1; i < len ; i++)
        {
        
                if(a[i] >= 'A' && a[i] <= 'Z')
                    a[i] += 32;
                else 
                    a[i] = a[i];    
            
        }
        for(int i = 0; i < len; i++)
        {
            cout << a[i];
        }
        cout << endl;
    }
    
    return 0;

16

#include<bits/stdc++.h>
using namespace std;
 
 
int main (){
    string a, b;
    getline(cin,a);
    getline(cin,b);
    int alen = a.length();
    int blen = b.length();
    for(int i = 0; i < alen && i < blen; i++)
    {
            if(a[i] >= 65 && a[i] <= 90)
            a[i] += 32;
            
            if(b[i] >= 65 && b[i] <= 90)
            b[i] += 32;
    }
    if(a == b)
    cout << "=";
    else if(a < b)
    cout << "<";
    else 
    cout << ">";
    return 0;

17

#include<iostream>
using namespace std;
int main ()
{
    string s1, s2;
    string s3, s4;
    getline(cin,s1);
    getline(cin,s2);
    int s1len = s1.length();
    int s2len = s2.length();
    for (int i = 0; i < s1len; i++)
    {
        if(s1[i] <= 'Z' && s1[i] >= 'A')
            s1[i] += 32;
        if(s1[i] != ' ')
            s3 += s1[i]; //把s1赋值到s3上
    } 
    for (int i = 0; i < s2len; i++)
    {
        if(s2[i] <= 'Z' && s2[i] >= 'A')
            s2[i] += 32;
        if(s2[i] != ' ')
            s4 += s2[i];
    } 
    if(s3 == s4)
    cout << "YES" << endl;
    else
    cout << "NO" << endl;
    return 0;
}
18

#include<iostream>
#include<cstring>
using namespace std;
 
 
int main ()
{
    int next[205];
    int s1len, s2len , s3len, s4len;
    string s1, s2, s3 ,s4;
    getline(cin,s1);
    getline(cin,s2);
    s1len = s1.length();
    s2len = s2.length();
    if(s1len < s2len)
    {
        s3 = s1;
        s4 = s2;
        s3len = s1len;
        s4len = s2len;
    }
    else
    {
        s3 = s2;
        s4 = s1;
        s3len = s2len;
        s4len = s1len;
    }
    
    int k = -1;
    int j = 0;
    next[0] = -1;
    next[1] = 0;
    while (j < s3len)
    {
        if(k == -1 || s3[j] == s3[k])
        {
            j++;
            k++;
            next[j] = k;
        }
        else
        k = next[k];
    }
    j = 0;
    int i = 0;
    while(i < s4len && j < s3len)
    {
        if( j == -1 || s3[j] == s4[i])
        {
            i++;
            j++;
        }
        else if(j != -1 && s3[j] != s4[i])
        j = next[j];
    }
    if(j == s3len)
    cout << s3 << " is substring of " << s4 << endl;
    else
    cout <<  "No substring" << endl;
}
19

#include<iostream>
#include<cstring>
using namespace std;
 
 
int main ()
{
    int next[205];
    int s1len, s2len , s3len, s4len;
    string s1, s2, s3 ,s4;
    cin >> s1 >> s2;
    s1len = s1.length();
    s2len = s2.length();
    if(s1len < s2len)
    {
        s3 = s1;
        s4 = s2 + s2;
        s3len = s1len;
        s4len = s2len * 2;
    }
    else
    {
        s3 = s2;
        s4 = s1 + s1;
        s3len = s2len;
        s4len = s1len * 2;
    }
    
    int k = -1;
    int j = 0;
    next[0] = -1;
    next[1] = 0;
    while (j < s3len)
    {
        if(k == -1 || s3[j] == s3[k])
        {
            j++;
            k++;
            next[j] = k;
        }
        else
        k = next[k];
    }
    j = 0;
    int i = 0;
    while(i < s4len && j < s3len)
    {
        if( j == -1 || s3[j] == s4[i])
        {
            i++;
            j++;
        }
        else if(j != -1 && s3[j] != s4[i])
        j = next[j];
    }
    if(j == s3len)
    cout << "true" << endl;
    else
    cout <<  "false" << endl;
}
20

#include<iostream>
#include<cstring>
using namespace std;
 
 
int main ()
{
    string world;
    cin >> world;
    int len = world.length();
    int i = len - 1;
    if(len > 2 && world[i] == 'r' && world[i-1] == 'e')
        len = len - 2;
    else if(len > 3 && world[i] == 'g' && world[i-1] == 'n' && world [i - 2] == 'i')
        len = len - 3;
    else if( len > 2 && world[i] == 'y' && world[i-1] == 'l')
        len = len - 2;
    else
        len = len ;
    for( i = 0 ; i < len ; i++)
    cout << world[i] ;
    cout << endl;
}

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值