# String Manipulation# Conditional Statements

f515 - 英文縮寫 (Abbreviation)

🔗 前往 ZeroJudge 原題

題目描述

題目要求將輸入的英文單字轉換為常見的縮寫。如果輸入是 "FOR",輸出 "4";如果輸入是 "TO",輸出 "2";如果輸入是 "YOU",輸出 "u";如果輸入是 "AND",輸出 "n";否則,輸出該單字的第一個字母(轉換為大寫)。

解題思路

這題主要考驗字串處理和條件判斷的能力。程式首先將輸入的字串轉換為大寫,然後使用一系列的 if-else if-else 語句來檢查輸入是否匹配預定義的縮寫。如果匹配,則輸出對應的縮寫;否則,輸出輸入字串的第一個字母。

複雜度分析

  • 時間複雜度: O(n),其中 n 是輸入字串的長度。主要時間花在字串轉換為大寫的迴圈上。
  • 空間複雜度: O(1),程式使用的額外空間是常數級別的。

程式碼

#include <iostream>
using namespace std;
int main(){
	cin.tie(0); ios::sync_with_stdio(false);
	string a;
	while(cin >> a){
		int al=a.length();
		for(int i=0;i<al;++i)
			if(a[i]>='a')
				a[i]-=32;
		if(a=="FOR")
			cout << "4";
		else if(a=="TO")
			cout << "2";
		else if(a=="YOU")
			cout << "u";
		else if(a=="AND")
			cout << "n";
		else
			cout << a[0];
	}
}

Discussion