Kotlin 與 Swift 語法對照:跨平台開發者 (2025年)

Kotlin 與 Swift 語法對照表(2025 年版) 在行動應用開發中, Kotlin 與 Swift 分別是 Android 與 iOS 的主流語言。雖然語法有些差異,但其實它們有很多相似之處。本文整理了常用的語法對照表,方便跨平台開發者快速上手。 1. 變數宣告 // Kotlin val name: String = "Alice" // 常數 var age: Int = 25 // 可變數 // Swift let name: String = "Alice" // 常數 var age: Int = 25 // 可變數 2. 條件判斷 // Kotlin if (age >= 18) { println("Adult") } else { println("Minor") } // Swift if age >= 18 { print("Adult") } else { print("Minor") } 3. 函式定義 // Kotlin fun greet(name: String): String { return "Hello, $name!" } // Swift func greet(_ name: String) -> String { return "Hello, \(name)!" } 4. 陣列與迴圈 // Kotlin val fruits = listOf("Apple", "Banana", "Cherry") for (fruit in fruits) { println(fruit) } // Swift let fruits = ["Apple", "Banana", "Cherry"] for fruit in fruits { print(f...

[Java] UVa 501 Black Box

題目連結

題意:
大致上描述一個資料庫,有 GET 跟 ADD(x) 兩種指令。ADD(x) 會新增一個元素 x 到 BOX,GET指令則會讓 (i + 1),並輸出當前 BOX 中第 i 小的數。

問題可以簡化為依序執行 ADD(x) 指令(題目測資A(1), A(2), ..., A(M)),當 BOX 內元素個數達到GET指令的值時,則先執行 GET 指令( GET 指令序列是嚴格遞增的)(u(1), u(2), ..., u(N))

解法:
是依序讀入 GET 指令的值,並用一個變數紀錄當前的 BOX 內元素個數。如果元素個數不足,就開始讀 ADD(x) 指令補充。由於BOX內元素都是由小到大排列的,在每次將數字加進來的同時,透過二分搜尋法尋找該元素要插入的位置(一開始我是從 BOX 頭開始判斷,結果超時( TLE )了),最後依序讀取GET指令的index輸出 BOX 內第 i 個小的數輸出。

import java.util.*;
public class main{
    public static void main(String[] args) {
        try{
            int K, M, N;
            int A[] = new int[30100];
            int u[] = new int[30100];
            int Box[] = new int[30100];
            Scanner in=new Scanner(System.in);
            
            K = in.nextInt();
            
            while(K-- > 0){
             M = in.nextInt();
             N = in.nextInt();
             for(int i = 1 ;i <= M; i++) {
              
              A[i] = in.nextInt();
             }
             for(int i = 1 ;i <= N; i++) {
              u[i] = in.nextInt();
             }
             
            
             int size = 0, index = 0;
          for(int i = 1; i <= N; i++)
          {
              while(size < u[i])
              {
                  size ++;
                  int key = A[size];
                  

                  int l = 1, r = size - 1, m;
                  while(l <= r)
                  {
                      m = (l + r) / 2;
                      if(Box[m] < key)
                          l = m + 1;
                      else
                          r = m - 1;
                  }
 
                  for(int j = size - 1; j >= l; j--)
                      Box[j + 1] = Box[j];
                  Box[l] = key;
              }
 
              index++;
              System.out.println(Box[index]);
          }
             if(K > 0)
             System.out.println();
            }
            
        }catch(Exception e){
            System.out.println("Input error!");
        }
    }
}

留言

這個網誌中的熱門文章

【Ubuntu】Terminal 複製貼上的方法 Copy & Paste

【Ubuntu】關閉預設畫面自動鎖定

[Java] HashMap資料結構簡介與用法