forked from Bananymous/banan-os
AOC2023: Cleanup day1 code
This commit is contained in:
parent
6a7335e5c9
commit
70c224d8ea
|
@ -53,54 +53,57 @@ int puzzle2(FILE* fp)
|
||||||
{
|
{
|
||||||
int line_len = strlen(buffer);
|
int line_len = strlen(buffer);
|
||||||
|
|
||||||
int digit = -1;
|
|
||||||
|
|
||||||
for (int i = 0; i < line_len; i++)
|
for (int i = 0; i < line_len; i++)
|
||||||
{
|
{
|
||||||
|
int digit = -1;
|
||||||
if (isdigit(buffer[i]))
|
if (isdigit(buffer[i]))
|
||||||
{
|
|
||||||
digit = buffer[i] - '0';
|
digit = buffer[i] - '0';
|
||||||
break;
|
else
|
||||||
}
|
{
|
||||||
for (int j = 0; j < 10; j++)
|
for (int j = 0; j < 10; j++)
|
||||||
{
|
{
|
||||||
if (line_len - i < strlen(str_digits[j]))
|
int str_len = strlen(str_digits[j]);
|
||||||
|
if (line_len - i < str_len)
|
||||||
continue;
|
continue;
|
||||||
if (strncmp(buffer + i, str_digits[j], strlen(str_digits[j])) == 0)
|
if (strncmp(buffer + i, str_digits[j], str_len) == 0)
|
||||||
{
|
{
|
||||||
digit = j;
|
digit = j;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (digit != -1)
|
if (digit != -1)
|
||||||
|
{
|
||||||
|
sum += 10 * digit;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sum += 10 * digit;
|
}
|
||||||
|
|
||||||
digit = -1;
|
|
||||||
|
|
||||||
for (int i = line_len - 1; i >= 0; i--)
|
for (int i = line_len - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
|
int digit = -1;
|
||||||
if (isdigit(buffer[i]))
|
if (isdigit(buffer[i]))
|
||||||
{
|
|
||||||
digit = buffer[i] - '0';
|
digit = buffer[i] - '0';
|
||||||
break;
|
else
|
||||||
}
|
{
|
||||||
for (int j = 0; j < 10; j++)
|
for (int j = 0; j < 10; j++)
|
||||||
{
|
{
|
||||||
if (i < strlen(str_digits[j]))
|
int str_len = strlen(str_digits[j]);
|
||||||
|
if (i < str_len)
|
||||||
continue;
|
continue;
|
||||||
if (strncmp(buffer + i - strlen(str_digits[j]), str_digits[j], strlen(str_digits[j])) == 0)
|
if (strncmp(buffer + i - str_len, str_digits[j], str_len) == 0)
|
||||||
{
|
{
|
||||||
digit = j;
|
digit = j;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (digit != -1)
|
if (digit != -1)
|
||||||
|
{
|
||||||
|
sum += digit;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
sum += digit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return sum;
|
return sum;
|
||||||
|
|
Loading…
Reference in New Issue