# String Manipulation# Conditional Statements

k629 - Bit++ (位元++)

🔗 前往 ZeroJudge 原題

題目描述

題目要求模擬 Bit++ 語言的執行,該語言只有一個變數 X,可以進行 ++ 或 -- 操作。給定一連串的操作指令,初始值為 0,計算最終 X 的值。

解題思路

題目描述了四種操作形式:X++、++X、X--、--X。 程式碼透過讀取每個指令字串,判斷指令是增加還是減少,並更新變數 x 的值。 由於指令字串的長度固定為 2 或 3,且只有 '+' 或 '-' 作為操作符,因此可以直接透過判斷第二個字元來決定是增加還是減少。

複雜度分析

  • 時間複雜度: O(n),其中 n 是指令的數量。程式碼需要遍歷所有 n 個指令。
  • 空間複雜度: O(1),程式碼只使用了一個整數變數 x 和一個字串變數 s,空間使用量不隨輸入大小變化。

程式碼

#include <iostream>
using namespace std;
int x,n;
string s;
int main(){
	cin >> n;
	for(int i=0;i<n;++i){
		cin >> s;
		if(s[1]=='+')++x;
		else --x;
	}
	cout << x;
}

Discussion