小王子

聆听小王子,守望成长,静待花开

小王

题目描述

在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字 母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输入描述

输入一行总长度不超过 80 的字符串

输出描述

输出倒序后的句子

样例输入

Hello World Here I Come

样例输出

Come I Here World Hello

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <algorithm>
using namespace std;
int main()
{
    char a[100][100];
    int k=0;
    while(cin>>a[k]){
        k++;
    }
    for(int i=k-1;i>=0;i--){
        cout<<a[i]<<" ";
    }
    return 0;
}
3年前 (04月09日)
小王

题目描述

输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。 注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。

输入描述

一行单词序列,最少 1 个单词,最多 300 个单词,单词之间用至少 1 个空格间隔。单词序列总长度 不超过 1000。

输出描述

依次输出对应单词的长度,之间以空格间隔。

样例输入

She was born in 1990-01-02 and from Beijing city.

样例输出

3 3 4 2 10 3 4 7 5

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <algorithm>
using namespace std;
int main()
{
    string s;
    cin >> s;
    cout << s.size(); 
    while (cin >> s)
    {
        cout << " " << s.size();
    }
    return 0;
}
3年前 (04月09日)
小王

题目描述

对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串 s1 和 s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字 符串的子串。例如 CDAA 是由 AABCD 两次移位后产生的新串 BCDAA 的子串,而 ABCD 与 ACBD 则不能 通过多次移位来得到其中一个字符串是新串的子串。

输入描述

一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度不超过 30。

输出描述

如果一个字符串是另一字符串通过若干次循环移位产生的新串的子串,则输出 true,否则输出 false。

样例输入

AABCD CDAA

样例输出

true

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
using namespace std;
int main()
{
    string s1,s2;
    cin >> s1 >> s2;
    if (s2.size() > s1.size())
        swap(s2,s1);
    s1 += s1;
    for (int i = 0;i < s1.size();i++)
    {
        string s = "";
        for (int j = i;j < i + s2.size() && j < s1.size();j++)
             s += s1[j];
        if (s == s2)
        {
            cout << "true";
            return 0;
        }
    }
    cout << "false";
    return 0;
}
3年前 (04月09日)
小王

题目描述

输入两个不带空格的字符串,判断其中一个是否为另一个串的子串。(仅包含小写字母)

输入描述

两行,第一行是一个字符串 a(长度不超过 100)
第二行是一个字符串 b(长度比 a 长且不超过 1000)

输出描述

一行,“YES”表示 a 是 b 的子串,“NO”表示 a 不是 b 的子串

样例输入

abc
abdcabc

样例输出

YES

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    string s,t;
    int n = 0,b = 0,c = 0;
    cin >> s;
    cin >> t;
    b = t.size();
    c = s.size();
    for (int i = 0;i < b;i++)
    {
        for (int j = 0;j < c;j++)
        {
            if (s[j] == t[I])
            {
                if (s[j + 1] == t[i + 1])
                {
                     cout << "YES";
                     return 0;
                }
            }
        }
    }
    cout << "NO";
    return 0;
}
3年前 (04月09日)
小王

题目描述

判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。

输入描述

两行,每行包含一个字符串。

输出描述

若两个字符串相等,输出 YES,否则输出 NO。

样例输入

a A bb BB ccc CCC
Aa BBbb CCCccc

样例输出

YES

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <algorithm>
using namespace std;
int main()
{
    string s,s1;
    int ss1 = 0,ss2 = 0;
    getline(cin,s);
    getline(cin,s1);
    for (int i = 0;i < s.size();i++) { 
        if(s[i] >= 'a' && s[i] <= 'z') s[i] -= 32;
        if (s[i] == ' ') continue;
        ss1 += s[i];
    }
    for (int i = 0;i < s1.size();i++) { 
        if(s1[i] >= 'a' && s1[i] <= 'z') s1[i] -= 32;
        if (s1[i] == ' ') continue;
        ss2 += s1[i];
    }
    if (ss1 == ss2) cout << "YES";
    else cout << "NO";
    return 0;
}
3年前 (04月09日)
小王

题目描述

Julius Caesar 曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。

密文

ABCDEFGHIJKLMNOPQRSTUVWXYZ

明文

VWXYZABCDEFGHIJKLMNOPQRSTU 你的任务是对给定的密文进行解密得到明文。 你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进 行解码。

输入

一行,给出密文,密文不为空,而且其中的字符数不超过 200。

输出

输出一行,即密文对应的明文。

样例输入

NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX

样例输出

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int main()
{
    string s;
    getline(cin,s);
    for(int i = 0;i < s.size();i++) { 
        if(s[i] >= 'A' && s[i] <= 'Z')
            s[i] = (s[i] + 21 - 'A') % 26 + 'A';
    }
    cout << s;
    return 0;
}
3年前 (04月09日)
小王

描述

医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将ASPIRIN、aspirin整理成Aspirin。

输入

第一行一个数字n,表示有n个药品名要整理,n不超过100。
接下来n行,每行一个单词,长度不超过20,表示医生手书的药品名。药品名由字母、数字和-组成。

输出

n行,每行一个单词,对应输入的药品名的规范写法。

样例输入

4
AspiRin
cisapride
2-PENICILLIN
Cefradine-6

样例输出

Aspirin
Cisapride
2-penicillin
Cefradine-6

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    int n = 0,i = 0,j = 0,b = 0;
    char a[999];
    cin >> n;
    for(i = 0;i < n;i++) 
    { 
        cin >> a;
        b = strlen(a);
        for(j = 0;j < b;j++) 
        { 
            if(j == 0 && a[j] >= 'a' && a[j] <= 'z') 
                a[j] -= 32; 
            if(j > 0 && a[j] >= 'A' && a[j] <= 'Z')
                a[j] += 32;
        }
        cout << a << endl;
    }
    return 0;
}
3年前 (02月18日)
cfanlost
  • cfanlost : 医院开药的系统好像是拼音首字母就可以联想出来.
    • 老王 : 回复 cfanlost: 嗯,现在医院的系统都是定制的!
    小王

    描述

    把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母。

    输入

    输入一行:待互换的字符串。

    输出

    输出一行:完成互换的字符串(字符串长度小于80)。

    样例输入

    If so, you already have a Google Account. You can sign in on the right.

    样例输出

    iF SO, YOU ALREADY HAVE A gOOGLE aCCOUNT. yOU CAN SIGN IN ON THE RIGHT.

    题解

    cpp
    
    #include <iostream>
    using namespace std;
    int main()
    {
        char a[9999];
        int i = 0;
        cin.getline(a,80);
        for(int i = 0;a[i];i++)
        {
            if(a[i] >= 'a' && a[i] <= 'z') 
                a[i] -= 32; 
            else if(a[i] >= 'A' && a[i] <= 'Z')
                a[i] += 32;
        }
        for(int i = 0;a[i];i++)
            cout<<a[i];
        cout<<endl;
        return 0;
    }
    
    3年前 (02月17日)