[CodeWars] Mumbling

This time no story, no theory. The examples below show you how to write function accum:

Examples:

Accumul::accum("abcd");    // "A-Bb-Ccc-Dddd"
Accumul::accum("RqaEzty"); // "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
Accumul::accum("cwAt");    // "C-Ww-Aaa-Tttt"

The parameter of accum is a string which includes only letters from a..z and A..Z.


My Solution

class Accumul
{
public:
    static std::string accum(const std::string &s);
};

std::string Accumul::accum(const std::string &s)
{
    std::string result;

    for (int i = 0; i < s.length(); ++i)
    {
        if(i != 0)
            result += ‘-‘;

        result += s[i] < ‘a’ ? s[i] : (char)(s[i]  32);

        for (int j = 1; j <= i; ++j)
            result += s[i] < ‘a’ ? (char)(s[i] + 32) : s[i];
    }

    return result;
}
cs

There are three rules to this problem. First, the repetition time of each alphabet increases by 1. Second, if the alphabet is uppercase, change it to all lowercase letters except the first alphabet. Third, if the first alphabet is lowercase, change it to uppercase.

So, write the code is correct for each condition, the others are simple.

글쓴이: BakJH

Student of Daedeok SW Meister Highschool, in Korea.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중