# String Manipulation# Edge Cases

c466 - 4th CPSC Problem 2-傅趴滴

🔗 前往 ZeroJudge 原題

題目描述

題目描述了傅趴滴語法,其中負號的數量決定了最終數值的正負號。如果負號數量為奇數,則輸出負數,否則輸出正數。輸入是一個以多個負號開頭的字串,後跟一個非負整數。目標是將這個字串轉換為標準整數。

解題思路

程式碼首先計算字串開頭的負號數量。如果字串以 '0' 開頭,則直接輸出 '0'。否則,如果負號數量為奇數,則輸出一個負號,然後輸出剩餘的字串。如果負號數量為偶數,則直接輸出剩餘的字串。

複雜度分析

  • 時間複雜度: O(n),其中 n 是輸入字串的長度。程式碼需要遍歷字串以計算負號的數量和輸出結果。
  • 空間複雜度: O(1),程式碼只使用了常數級的額外空間。

程式碼

#include <iostream>
#include <string>
using namespace std;
int main(){
	string a;
	cin >> a;
	int i;
	for(i=0;a[i]=='-';i++){};
	if(a[i]=='0')
		cout << '0'; 
	else{
		if(i%2)
			cout << '-';
		for(;a[i]!='\0';i++)
			cout << a[i];
	}
}

Discussion