- Исполнители
-
Обучение
Учебный центр Python Запускаемые примеры, NumPy, pandas и другое Учебный центр C и C++ Указатели, память, STL и современный C++ Учебный центр C#Основы C#, ООП, LINQ, async и упражнения .NET Алгоритмы на 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.
Ссылки
-
Example 1 Не запущеноВвод:
board = ["XOX", ".X.", "O.X"]Ожидаемый вывод:"X"Ваш вывод -
Example 2 Не запущеноВвод:
board = ["XOX", "XOO", "OXX"]Ожидаемый вывод:"Draw"Ваш вывод
При отправке также выполняются ещё 5 скрытых теста.
Онлайн-компилятор и отладчик C#
Пишите, компилируйте, запускайте и отлаживайте C# онлайн. Используйте точки останова, пошаговое выполнение и просмотр объектов в многофайловой IDE без Visual Studio.
🚀 349,497 всего выполнений (43,755 в этом месяце)
Практикуйте C# на задачах
Решайте задачи прямо в редакторе: запускайте тесты, отправляйте решение и получайте AI-рецензию.
🔷 Об этом онлайн-исполнителе C# / .NET
CodeUtility C# Executor позволяет писать и запускать настоящий C#‑код прямо в браузере - без установки, настройки Visual Studio или .NET SDK. Он работает в защищенной песочнице с поддержкой .NET runtime и современных версий языка C#, включая C# 9 и новее.
Этот инструмент использует dotnet-script под капотом, чтобы компилировать и выполнять ваш код с реальным поведением .NET, позволяя экспериментировать как с базовыми, так и с продвинутыми возможностями C#, такими как LINQ, async/await, сопоставление с образцом и обобщения.
Вы можете тестировать простые скрипты, функции и логические конструкции или изучать концепции классов, структур, наследования и интерфейсов - все это в чистой, не отвлекающей среде для кодинга.
Независимо от того, изучаете ли вы C#, тестируете алгоритмы или экспериментируете с возможностями .NET, CodeUtility C# Executor дает вам быстрый, безопасный и надежный способ мгновенно запускать C#‑код из любого браузера.
Больше, чем средство запуска кода
Используйте в одном исполнителе многофайловый редактор, изолированный терминал выполнения, библиотеки для выбранной среды, постоянные рабочие пространства, общий доступ и совместную работу в реальном времени.
Как пользоваться этим исполнителем?
Выберите среду выполнения, откройте или создайте файл, напишите код и нажмите «Запустить». Результат появится в терминале. Пользователи, вошедшие в систему, могут хранить файлы в рабочем пространстве, устанавливать библиотеки и совместно работать через общие ресурсы.
- Выберите версию и отредактируйте текущий файл или откройте другой файл рабочего пространства.
- Запустите код, при необходимости введите данные в терминале и просмотрите сохранённую историю запусков.
- Используйте библиотеки, инструменты рабочего пространства, общий доступ и чат, когда для задачи требуется несколько фрагментов кода.
💡 Основы C# и примеры, которые можно попробовать выше
1. Объявление переменных и констант
В C# используется строгая типизация переменных. Применяйте const для констант времени компиляции и readonly для констант времени выполнения.
int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;
// Константы
const int MaxUsers = 100;
const string Company = "CodeUtility";
2. Условия (if / switch)
Используйте if, else if и switch для управления потоком выполнения.
int x = 2;
if (x == 1)
{
Console.WriteLine("Один");
}
else if (x == 2)
{
Console.WriteLine("Два");
}
else
{
Console.WriteLine("Другое");
}
switch (x)
{
case 1:
Console.WriteLine("Один");
break;
case 2:
Console.WriteLine("Два");
break;
default:
Console.WriteLine("Другое");
break;
}
3. Циклы
В C# поддерживаются циклы for, while и foreach.
for (int i = 0; i < 3; i++)
{
Console.WriteLine(i);
}
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
4. Массивы
Массивы хранят коллекции фиксированного размера из элементов одного типа.
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);
5. Работа со списками
Используйте List<T> для динамических коллекций.
List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);
foreach (int n in nums)
{
Console.Write(n + " ");
}
6. Ввод/вывод в консоли
Используйте Console.WriteLine и Console.ReadLine для базового ввода-вывода.
Console.Write("Введите ваше имя: ");
string name = Console.ReadLine();
Console.WriteLine($"Привет, {name}!");
7. Функции
Определяйте методы, указывая тип возвращаемого значения, имя и параметры.
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
8. Словари
Dictionary<TKey, TValue> хранит пары ключ-значение.
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);
9. Обработка исключений
Обрабатывайте ошибки времени выполнения с помощью try, catch и finally.
try
{
throw new Exception("Что-то пошло не так");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
10. Работа с файлами
Используйте File и StreamReader/StreamWriter для операций с файлами.
File.WriteAllText("file.txt", "Привет, файл");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);
11. Работа со строками
Строки в C# поддерживают методы Length, Substring, Contains и другие.
string message = "Hello World";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("World"));
12. Классы и объекты
C# поддерживает объектно-ориентированное программирование через классы и объекты.
class Person
{
public string Name;
public Person(string name) => Name = name;
public void Greet() => Console.WriteLine($"Привет, я {Name}");
}
Person p = new Person("Alice");
p.Greet();