Added older advents
This commit is contained in:
parent
8db2505049
commit
9cf858b860
78 changed files with 13807 additions and 0 deletions
59
advent_of_code_2015/day5/main1.cc
Normal file
59
advent_of_code_2015/day5/main1.cc
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
bool has_forbidden(string const &str)
|
||||
{
|
||||
if (str.find("ab") != string::npos) return true;
|
||||
if (str.find("cd") != string::npos) return true;
|
||||
if (str.find("pq") != string::npos) return true;
|
||||
if (str.find("xy") != string::npos) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool has_repeating(string const &str)
|
||||
{
|
||||
for (size_t idx = 0; idx != str.size() - 1; ++idx)
|
||||
{
|
||||
if (str[idx] == str[idx + 1])
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool vowels_ok(string const &str)
|
||||
{
|
||||
size_t vowels = 0;
|
||||
|
||||
vowels += count(str.begin(), str.end(), 'a');
|
||||
vowels += count(str.begin(), str.end(), 'e');
|
||||
vowels += count(str.begin(), str.end(), 'i');
|
||||
vowels += count(str.begin(), str.end(), 'o');
|
||||
vowels += count(str.begin(), str.end(), 'u');
|
||||
|
||||
return vowels >= 3;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
string buffer;
|
||||
size_t count = 0;
|
||||
|
||||
while(getline(cin, buffer))
|
||||
{
|
||||
cout << "'" << buffer << "'\n";
|
||||
|
||||
if (vowels_ok(buffer)
|
||||
&& has_repeating(buffer)
|
||||
&& !has_forbidden(buffer))
|
||||
{
|
||||
++count;
|
||||
}
|
||||
}
|
||||
|
||||
cout << "Nice strings: " << count << "\n";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue