- Компиляторы
-
Обучение
Изучить Python Запускаемые примеры, NumPy, pandas и другое Изучить ИИНейросети, ML и LLM с нуля Изучить C и C++ Указатели, память, STL и современный C++ Изучить C#Основы C#, ООП, LINQ, async и упражнения .NET Изучить MatplotlibЛинейные, столбчатые, точечные и круговые диаграммы с визуализацией Алгоритмы на Python Поиск, сортировка, рекурсия и визуализация O(n) Алгоритмы на C и C++ Сравнение реализаций на C и C++ Программирование для детей Учись программировать, играя!
- ЗадачиНовое
- УчителямНовое
- Обновления
- Угостить кофе
A 3×3 board is given as three strings of X, O and . (empty). A player wins with three of their marks in a row, column or diagonal. Boards never have two winners.
Implement tic_tac_toe_winner(board).
Input
board: Three rows of three characters each.
Output
Return "X" or "O" for the winner, "Draw" if the board is full with no winner, or "Pending" if empty cells remain and nobody has won.
Ограничения
board has exactly 3 rows of length 3
Примеры
Пример 1
Ввод:
board = ["XOX", ".X.", "O.X"]
Ожидаемый вывод:
"X"
Пояснение
X holds the diagonal from top-left to bottom-right, so X wins.
Пример 2
Ввод:
board = ["XOX", "XOO", "OXX"]
Ожидаемый вывод:
"Draw"
Пояснение
The board is full and no line has three of a kind: Draw.
Ссылки
-
Пример 1 Не запущеноВвод:
board = ["XOX", ".X.", "O.X"]Ожидаемый вывод:"X"Ваш вывод -
Пример 2 Не запущеноВвод:
board = ["XOX", "XOO", "OXX"]Ожидаемый вывод:"Draw"Ваш вывод
При отправке также выполняются ещё 5 скрытых теста. Если код не пройдёт один из них, вы увидите этот тест. Решите задачу, чтобы увидеть все.
JavaScript онлайн: запуск кода JS и Node.js
Write, run, and debug JavaScript or Node.js online in a full-featured browser IDE. Work with multiple files and packages, save your workspace, and collaborate in real time.
🚀 339,661 всего выполнений (665 в этом месяце)
Практикуйте JavaScript на задачах
Решайте задачи прямо в редакторе: запускайте тесты, отправляйте решение и получайте AI-рецензию.
⚡ Об этом онлайн-исполнителе JavaScript (Node.js)
CodeUtility JavaScript Executor позволяет писать и запускать современный JavaScript прямо в браузере - мгновенно и без какой-либо установки. Он использует реальные окружения Node.js для безопасного выполнения кода в изолированном контейнере, поддерживаются версии 16, 18 и 20.
Этот инструмент идеально подходит для тестирования сниппетов Node.js, изучения синтаксиса ES6+ или освоения базовых концепций JavaScript, таких как циклы, функции, массивы, промисы и поведение async/await.
Вы также можете проверять алгоритмы, отлаживать небольшие скрипты или экспериментировать с логикой выполнения без установки Node локально. Подходит ученикам, backend‑разработчикам и всем, кому нужен быстрый способ запускать JavaScript‑код в браузере.
Больше, чем просто запуск кода
В одном редакторе есть всё для работы: несколько файлов, изолированный терминал, библиотеки для выбранной версии, сохранение проектов, общий доступ по ссылке и совместная работа в реальном времени.
Как пользоваться редактором
Выберите версию языка, откройте или создайте файл, напишите код и нажмите «Запустить». Результат появится в терминале. После входа в аккаунт можно хранить файлы в рабочем пространстве, устанавливать библиотеки и работать над кодом вместе с другими.
- Выберите версию и отредактируйте текущий файл или откройте другой файл рабочего пространства.
- Запустите код, при необходимости введите данные в терминале и просмотрите сохранённую историю запусков.
- Используйте библиотеки, инструменты рабочего пространства, общий доступ и чат, когда для задачи требуется несколько фрагментов кода.
💡 Базовое руководство по Node.js для начинающих
1. Объявление переменных и констант
Используйте let или const для переменных с блочной областью видимости. const применяется для констант.
let x = 10;
const PI = 3.14;
let name = "Alice";
let isActive = true;
2. Условия (if / switch)
Используйте if, else if, else или switch для управления потоком выполнения.
let x = 2;
if (x === 1) {
console.log("Один");
} else if (x === 2) {
console.log("Два");
} else {
console.log("Другое");
}
switch (x) {
case 1:
console.log("Один");
break;
case 2:
console.log("Два");
break;
default:
console.log("Другое");
}
3. Циклы
Используйте for, while и forEach для перебора данных.
for (let i = 0; i < 3; i++) {
console.log(i);
}
let n = 3;
while (n > 0) {
console.log(n);
n--;
}
4. Массивы
Используйте массивы для хранения упорядоченных списков значений. Обращайтесь к элементам по индексам.
let fruits = ["яблоко", "банан", "вишня"];
console.log(fruits[0]);
console.log(fruits.length);
5. Работа с массивами
Используйте методы push, pop, slice и reverse.
fruits.push("киви");
fruits.pop();
console.log(fruits.slice(0, 2));
console.log(fruits.reverse());
let squares = [1, 2, 3, 4, 5].map(x => x * x);
console.log(squares);
6. Ввод/вывод в консоли
Используйте console.log для вывода и модуль readline для ввода.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question("Как тебя зовут? ", name => {
console.log(`Привет, ${name}`);
rl.close();
});
7. Функции
Функции можно объявлять или выражать. Стрелочные функции часто используются в современном JavaScript.
function greet(name) {
return `Привет, ${name}`;
}
const add = (a, b) => a + b;
console.log(greet("Alice"));
console.log(add(2, 3));
8. Объекты (Map)
Объекты хранят пары ключ‑значение. Они похожи на словари или отображения (maps).
let person = { name: "Bob", age: 25 };
console.log(person.name);
console.log(person["age"]);
// Коллекция Map из ES6
const map = new Map();
map.set("a", 1);
console.log(map.get("a"));
9. Обработка исключений
Используйте try, catch и finally для безопасной обработки ошибок.
try {
throw new Error("Что-то пошло не так");
} catch (e) {
console.log(e.message);
} finally {
console.log("Очистка при необходимости");
}
10. Работа с файлами
Используйте модуль fs Node.js для чтения и записи файлов.
const fs = require("fs");
fs.writeFileSync("test.txt", "Привет, файл");
const data = fs.readFileSync("test.txt", "utf8");
console.log(data);
11. Работа со строками
Используйте методы trim(), toUpperCase(), replace() и split().
let text = " Hello World ";
console.log(text.trim());
console.log(text.toUpperCase());
console.log(text.replace("Hello", "Hi"));
console.log(text.split(" "));
12. Классы и объекты
ES6+ поддерживает ООП через синтаксис class.
class Person {
constructor(name) {
this.name = name;
}
greet() {
return `Привет, я - ${this.name}`;
}
}
const p = new Person("Alice");
console.log(p.greet());
13. Ссылки
Объекты и массивы в JavaScript передаются по ссылке.
function update(arr) {
arr.push("changed");
}
let data = ["original"];
update(data);
console.log(data); // ["original", "changed"]