Aracade Intro #49 lineEncoding. Algorithm, 알고리즘 문제풀이, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
Q.
e.g.
Input -> s = "aabbbc"
Output -> lineEncoding(s) = "2a3bc"
처리과정 Process
#1
//Process
//1. Input string
//2. Iterate from begin to the end
// 2.1. Count alphabet in char number array
//3. Iterate from begin to the char number array
// 3.1. Add number and char to resultString
//4. Return resultString
//처리과정
//1. 문자열을 입력받는다.
//2. 시작부터 끝까지 반복한다.
// 2.1. 배열에서 해당 알파벳 위치 값을 센다
//3. 배열의 시작부터 끝까지 반복한다.
// 3.1. 배열의 숫자와 해당 위치 알파벳 (ascii) 를 리턴 문자열에 붙인다.
//4. 리턴문자열 반환한다.
#2
//Process
//1.Input string
//2. Iterate from begin to the end
// 2.1. Check it has countinous same value after it or not
// 2.1.1. If that char is last one, add number and char to resultString
//3. Return resultString
//처리과정
//1. 스트링 입력받는다.
//2. 시작부터 끝까지 반복한다.
// 2.1. 해당 char가 다음에도 같은 char 인지 확인하고 센다.
// 2.1.1. 해당 char의 끝부분이면, resultString에 갯수와 해당 char를 입력한다.
//3. resultString 반환한다.
Code.. Lemme see code!!!!!
코드.. 코드를 보자!!!!!
std::string lineEncoding(std::string s) {
string resultString = "";
int count = 0;
// #1
// int charNumberArray[26] = { 0 };
// for (int i = 0; i < s.size(); ++i)
// {
// ++charNumberArray[s[i]-97];
// }
// for (int i = 0; i < sizeof(charNumberArray)/sizeof(charNumberArray[0]); ++i)
// {
// if (charNumberArray[i] > 0)
// {
// if (charNumberArray[i] > 1)
// {
// resultString += to_string(charNumberArray[i]);
// }
// resultString += char(i+97);
// }
// }
// for (int i = 0; i < (sizeof(charNumberArray)/sizeof(charNumberArray[0])); ++i)
// {
// cout << charNumberArray[i] << " ";
// }
// #2 it's answer code
for (int i = 0; i < s.size(); ++i)
{
++count;
if (s[i+1] != 0)
{
if (s[i] != s[i+1])
{
if (count == 1)
{
resultString += s[i];
}
else
{
resultString += string(to_string(count)) + s[i];
}
count = 0;
}
}
else
{
if (count == 1)
{
resultString += s[i];
}
else
{
resultString += string(to_string(count)) + s[i];
}
}
}
return resultString;
// Process
// 1. Input string s
// 2. Prepare array size lowercase alphabet number
// 3. Iterate s from begin to the end
// 3.1. Count+1 in the vector index(char ascii - alphabetNumber)
// 4. Iterate array from begin to the end
// 4.1. Check if it's over 1 or 2
// 4.1.1. If over 1 - add that alphabet only to resultString
// 4.1.2. if over 2 - add that count and alphabet to resultString
// 5. Return resultString
// string resultString;
// int alphabet[26] = {0};
// for (int i = 0; i < s.size(); i++) {
// alphabet[s.at(i) - 97]++;
// }
// string s1;
// for (int i = 0; i < 26; i++) {
// if (alphabet[i] == 1) {
// s1 = (char) (i + 97);
// resultString += s1;
// } else if (alphabet[i] > 1) {
// resultString += to_string(alphabet[i]);
// s1 = (char) (i + 97);
// resultString += s1;
// }
// }
// return resultString;
}
Something else you might like..
2018/12/16 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법(2)
2018/12/06 - [Life/Health care] - Vitamin C 비타민 씨 usage/side effects/dosage 용법/효능/부작용
2018/12/02 - [Life/Health care] - Maca 마카 usage/side effects/dosage 효능/부작용/용법