# String Manipulation# Iteration

e051 - 文意字彙

🔗 前往 ZeroJudge 原題

題目描述

題目要求將輸入的英文單字,保留頭尾字母不變,將中間的字母替換為底線。

解題思路

此題的解題思路非常直接。首先讀取輸入的字串。然後輸出字串的第一個字元,接著輸出 _ 字元 n-2 次,其中 n 是字串的長度。最後輸出字串的最後一個字元。

複雜度分析

  • 時間複雜度: O(n),其中 n 是字串的長度。因為需要遍歷字串一次來輸出底線。
  • 空間複雜度: O(1),因為只使用了常數額外的空間。

程式碼

#include <iostream>
#include <string>

using namespace std;

int main(){

	string A;

	cin >> A;
	cout << A[0];
	for(int i=0;i<A.size()-2;i++){
		cout << "_";
	}
	cout << A[A.length()-1];
	return 0;
}

Discussion