isundil 3 жил өмнө
parent
commit
7636154f3d
2 өөрчлөгдсөн 75 нэмэгдсэн , 0 устгасан
  1. 0 0
      d6/input
  2. 75 0
      d6/main.js

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
d6/input


+ 75 - 0
d6/main.js

@@ -0,0 +1,75 @@
+
+const fs = require('fs');
+const readline = require('readline');
+
+function isMarker(str) {
+    let tmp = [];
+    return !str.split("").some(i => {
+        if (tmp.includes(i))
+            return true;
+        tmp.push(i);
+        return false;
+    });
+}
+
+function findMarker(input, len) {
+    for (let i =0; i < input.length -len; ++i) {
+        if (isMarker(input.substring(i, i+len))) {
+            return i;
+        }
+    }
+}
+
+function strLine(line) {
+    let output = "";
+    let pos14 = -1;
+    let pos4 = -1;
+    while (line.length) {
+        if (pos14 < 0)
+            pos14 = findMarker(line, 14);
+        if (pos4 < 0)
+            pos4 = findMarker(line, 4);
+
+        if (pos14 < 4) {
+            output += line.substring(0, pos14) + '\033[34;1m' + line.substring(pos4, pos4 +14) +'\033[39;00m';
+            line = line.substring(14);
+            pos14 = pos4 = -1;
+        } else if (pos4 === 0) {
+            output += '\033[95;1m' + line.substring(0, 4) +'\033[39;00m';
+            line = line.substring(4);
+            pos4 = -1;
+            pos14 -= 4;
+            if (pos14 === 0) pos14 = -1;
+        } else {
+            if (pos14 <= pos4) {
+                output += line.substring(0, pos14);
+                line = line.substring(pos14);
+                pos4 -= pos14;
+                if (pos4 === 0) pos4 = -1;
+                pos14 = 0;
+            } else if (pos4) {
+                output += line.substring(0, pos4);
+                line = line.substring(pos4);
+                pos14 -= pos4;
+                if (pos14 === 0) pos14 = -1;
+                pos4 = 0;
+            } else {
+                output += line;
+                line = "";
+            }
+        }
+    }
+    return output;
+}
+
+async function main() {
+    for await (let line of readline.createInterface({ input: process.stdin })) {
+        console.log(strLine(line));
+        console.log("Position of distinct 4 chars: " + (findMarker(line, 4)+4));
+        console.log("Position of distinct 14 chars: " + (findMarker(line, 14)+14));
+        break;
+    }
+};
+
+(main());
+

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно