본 블로그는 비상업적, 비영리적 용도의 학업만을 위해 글을 게시합니다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
void init(bool check[])
{
check[45] = true; // '-' == 45
check[46] = true; // '.' == 46
check[95] = true; // '_' == 95
for(int i = '0'; i <= '9'; i++)
check[i] = true;
for(int i = 'A'; i <= 'Z'; i++)
{
check[i] = true;
check[i + 32] = true;
}
}
string solution(string new_id) {
bool check[128] = {false};
char ans[18] = {0};
int ans_length = 0;
init(check);
for(int i = 0; i < new_id.length(); i++)
{
char now = new_id[i];
//cout << now << " : " << check[now] << '\n';
if(ans_length == 15)
break;
if(check[now])
{
if(now == '.')
{
if(ans_length != 0 && ans[ans_length - 1] != '.')
ans[ans_length++] = '.';
}
else if(now >= 'A' && now <= 'Z')
ans[ans_length++] = now + 32;
else
ans[ans_length++] = now;
}
}
if(ans_length > 0 && ans[ans_length - 1] == '.')
ans[ans_length--] = 0;
if(ans_length == 0)
ans[ans_length++] = 'a';
if(ans_length <= 2)
{
while(ans_length < 3)
{
ans[ans_length++] = ans[ans_length - 1];
}
}
string answer(ans, ans_length);
return answer;
}