- ตัวดำเนินการ
-
เรียนรู้
เรียน Python ตัวอย่างที่รันได้, NumPy, pandas และอื่น ๆ เรียน AIโครงข่ายประสาท ML และ LLM ตั้งแต่ศูนย์ เรียน C และ C++ พอยน์เตอร์ หน่วยความจำ STL และ C++ สมัยใหม่ เรียน C#พื้นฐาน C#, OOP, 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 การทดสอบที่ซ่อนอยู่จะถูกรันเมื่อคุณส่งคำตอบ ถ้าโค้ดไม่ผ่านข้อใด คุณจะเห็นการทดสอบข้อนั้น แก้โจทย์ให้ได้เพื่อดูทั้งหมด
Run Swift Online
Write, run, and debug Swift code online using a command-line Swift environment. Manage multiple files, save your workspace, and share code without installing Xcode.
🚀 19,043 การดำเนินการทั้งหมด (611 ในเดือนนี้)
ฝึก Swift ด้วยโจทย์เขียนโค้ด
แก้โจทย์จริงใน editor นี้: รันทดสอบตัวอย่าง ส่งคำตอบ และรับรีวิวโค้ดจาก AI
🍎 เกี่ยวกับตัวรัน Swift ออนไลน์นี้
CodeUtility Swift Executor ให้คุณเขียนและรันโค้ด Swift ได้โดยตรงบนเบราว์เซอร์ - ไม่ต้องติดตั้ง Xcode, SDK หรือเซ็ตอัป macOS แต่อย่างใด โดยใช้คอมไพเลอร์ Swift จริงในแซนด์บ็อกซ์ที่แยกออกมา เพื่อให้ได้พฤติกรรมของ Swift แบบเนทีฟที่ถูกต้องแม่นยำ
เครื่องมือนี้รองรับหลายเวอร์ชันของ Swift - 5.7, 5.9 และ รุ่นล่าสุด - ให้คุณยืดหยุ่นในการสำรวจฟีเจอร์ภาษาใหม่ๆ และยังคงความเข้ากันได้กับฐานโค้ด Swift รุ่นเก่า
เหมาะอย่างยิ่งสำหรับนักพัฒนาที่กำลังเรียนรู้ไวยากรณ์ Swift, ทดสอบอัลกอริทึม หรือทดลองโค้ดสำหรับ iOS, macOS และ Swift ฝั่งเซิร์ฟเวอร์ โดยไม่ต้องติดตั้งเครื่องมือหรือซิมูเลเตอร์ในเครื่อง
แต่ละสแนิปเพตรันอย่างปลอดภัยในสภาพแวดล้อม Swift แบบคอนเทนเนอร์ มั่นใจได้ถึงฟีดแบ็กจากคอมไพเลอร์จริงและการรันโค้ดที่ปลอดภัย
มากกว่าเครื่องมือรันโค้ด
ใช้ตัวแก้ไขหลายไฟล์ เทอร์มินัลประมวลผลแบบแยกส่วน ไลบรารีเฉพาะรันไทม์ พื้นที่ทำงานถาวร การแชร์ และการทำงานร่วมกันแบบเรียลไทม์ได้จากตัวประมวลผลเดียวกัน
วิธีใช้ตัวประมวลผลนี้
เลือกรันไทม์ เปิดหรือสร้างไฟล์ เขียนโค้ด แล้วเลือกเรียกใช้ ผลลัพธ์จะแสดงในเทอร์มินัล ส่วนผู้ใช้ที่ลงชื่อเข้าใช้สามารถเก็บไฟล์ในพื้นที่ทำงาน ติดตั้งไลบรารี และทำงานร่วมกันผ่านการแชร์ได้
- เลือกเวอร์ชันแล้วแก้ไขไฟล์ปัจจุบัน หรือเปิดไฟล์อื่นในพื้นที่ทำงาน
- เรียกใช้โค้ด ป้อนข้อมูลในเทอร์มินัลเมื่อระบบร้องขอ และตรวจสอบประวัติการเรียกใช้ที่บันทึกไว้
- ใช้ไลบรารี เครื่องมือพื้นที่ทำงาน การแชร์ และแชท เมื่องานของคุณต้องใช้โค้ดมากกว่าหนึ่งส่วน
💡 คู่มือพื้นฐาน Swift สำหรับผู้เริ่มต้น
1. การประกาศตัวแปรและค่าคงที่
ใช้ var สำหรับตัวแปร และ let สำหรับค่าคงที่ใน Swift.
var age = 30
let pi = 3.14159
var name = "Alice"
let isActive = true
// ค่าคงที่ไม่สามารถกำหนดค่าใหม่ได้
// pi = 3.14 // ❌ ข้อผิดพลาด
2. เงื่อนไข (if / switch)
ใช้ if, else if, else สำหรับลอจิก และใช้ switch สำหรับหลายเงื่อนไข.
let number = 2
if number == 1 {
print("One")
} else if number == 2 {
print("Two")
} else {
print("Other")
}
switch number {
case 1:
print("One")
case 2:
print("Two")
default:
print("Other")
}
3. ลูป
Swift รองรับลูปแบบ for-in, while และ repeat-while.
for i in 0..<3 {
print(i)
}
var n = 3
while n > 0 {
print(n)
n -= 1
}
4. อาเรย์
อาเรย์เก็บชุดข้อมูลที่มีลำดับ.
var numbers = [10, 20, 30]
print(numbers[1])
5. การจัดการอาเรย์
ใช้เมธอดของอาเรย์อย่าง append และ removeLast.
var nums = [1, 2, 3]
nums.append(4)
nums.removeLast()
for n in nums {
print(n)
}
6. การรับ/ส่งข้อมูลทางคอนโซล
ใช้ print() สำหรับเอาต์พุต ส่วนอินพุตต้องทำเพิ่มเติมใน Swift Playgrounds หรือ Xcode.
let name = "Alice"
print("Hello, \(name)")
7. ฟังก์ชัน
ประกาศฟังก์ชันที่นำกลับมาใช้ซ้ำได้ พร้อมพารามิเตอร์และค่าที่ส่งกลับ.
func add(a: Int, b: Int) -> Int {
return a + b
}
print(add(a: 3, b: 4))
8. ดิกชันนารี
ดิกชันนารีเก็บข้อมูลแบบคู่คีย์-ค่า.
var ages = ["Alice": 30]
print(ages["Alice"] ?? 0)
9. การจัดการข้อผิดพลาด
Swift ใช้ do-catch สำหรับการจัดการข้อผิดพลาด.
enum MyError: Error {
case runtimeError(String)
}
do {
throw MyError.runtimeError("Something went wrong")
} catch let error {
print(error)
}
10. การอ่าน/เขียนไฟล์
Swift ใช้ FileManager หรือเมธอดของ String สำหรับงานอ่าน/เขียนไฟล์.
let text = "Hello File"
try text.write(toFile: "file.txt", atomically: true, encoding: .utf8)
let content = try String(contentsOfFile: "file.txt")
print(content)
11. การจัดการสตริง
ใช้เมธอดอย่าง count, contains, uppercased() เป็นต้น.
let text = "Hello World"
print(text.count)
print(text.contains("World"))
print(text.uppercased())
12. คลาส & อ็อบเจ็กต์
Swift รองรับ OOP โดยใช้ class และ init.
class Person {
var name: String
init(name: String) {
self.name = name
}
func greet() {
print("Hi, I'm \(name)")
}
}
let p = Person(name: "Alice")
p.greet()
13. Optionals
Swift ใช้ ? และ ! เพื่อจัดการค่าแบบ optional.
var name: String? = "Alice"
print(name ?? "Unknown")
if let unwrappedName = name {
print(unwrappedName)
}