操作字符串

时间: 1ms        内存:128M

描述:

现在有一些字符串,它们需要按照以下的规则发生变化:

1、如果字符串首字母是元音字母(提示,元音字母是aeiou),将首字母移动到字符串末尾,然后在字符串末尾加上abc

2、如果字符串首字母是辅音字母,直接在字符串末尾加上abc

3、最后将字符串首字母改成大写字母。

输入:

一个仅包含小写字母的字符串S,长度范围是[0,100]

输出:

将输入的字符串,按照上述规则变化后生成的字符串

示例输入:

abandon

示例输出:

Bandonaabc

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
int main()
{
    char str[100];
    gets(str);
    int n;
    n=strlen(str);
    int i;
    char a=str[0];
    if(str[0]=='a'||str[0]=='e'||str[0]=='i'||str[0]=='o'||str[0]=='u')
    {
        for(i=0;i<n;i++)
        {
            str[i]=str[i+1];
        }
        str[n-1]=a;
        str[n]='a';
        str[n+1]='b';
        str[n+2]='c';
    }
    else
    {
        str[n]='a';
        str[n+1]='b';
        str[n+2]='c';
    }
    str[0]=str[0]-32;
    for(i=0;i<=n+2;i++)
    {
        printf("%c",str[i]);
    }
    return 0;
}

参考答案(时间最优[0]):

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s,ans="";
    cin>>s;
    int n=s.length();
    if(s[0]=='a'||s[0]=='e'||s[0]=='i'||s[0]=='o'||s[0]=='u')
    {
        for(int i=1; i<n; ++i)
            ans+=s[i];
        ans+=s[0];
        ans+="abc";
    }
    else
        ans=s+"abc";
    ans[0]=char(int(ans[0])-'a'+'A');
    cout<<ans<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。