2011. 執行操作后的變量值

2011. 執行操作后的變量值

存在一種僅支持 4 種操作和 1 個變量 X 的編程語言:

++X 和 X++ 使變量 X 的值 加 1
–X 和 X-- 使變量 X 的值 減 1
最初,X 的值是 0

給你一個字符串數組 operations ,這是由操作組成的一個列表,返回執行所有操作后, X 的 最終值 。

示例 1:輸入:operations = ["--X","X++","X++"]
輸出:1
解釋:操作按下述步驟執行:
最初,X = 0
--X:X 減 1 ,X =  0 - 1 = -1
X++:X 加 1 ,X = -1 + 1 =  0
X++:X 加 1 ,X =  0 + 1 =  1
示例 2:輸入:operations = ["++X","++X","X++"]
輸出:3
解釋:操作按下述步驟執行: 
最初,X = 0
++X:X 加 1 ,X = 0 + 1 = 1
++X:X 加 1 ,X = 1 + 1 = 2
X++:X 加 1 ,X = 2 + 1 = 3
示例 3:輸入:operations = ["X++","++X","--X","X--"]
輸出:0
解釋:操作按下述步驟執行:
最初,X = 0
X++:X 加 1 ,X = 0 + 1 = 1
++X:X 加 1 ,X = 1 + 1 = 2
--X:X 減 1 ,X = 2 - 1 = 1
X--:X 減 1 ,X = 1 - 1 = 0

提示:

  • 1 <= operations.length <= 100
  • operations[i] 將會是 “++X”、“X++”、"–X" 或者是 “X–”

解題思路

遍歷所有的操作,判斷字符串的內容是否為++X或者 X++,如果是的話,就對變量X加1,否則的話則減去1.

代碼

class Solution {
public:int finalValueAfterOperations(vector<string>& operations) {int x(0);for (int i = 0; i < operations.size(); ++i) {if ("++X"==operations[i]||"X++"==operations[i])x++;else x--;}return x;}
};
  • 時間復雜度:O(n),n為operations數組的長度。
  • 空間復雜度:O(1),不需要使用額外的空間

優化思路

因為我們發現++X 和 X++中間的字符都為+,而對于–X 和 X–中間的字符都為-,因此我們不需要判斷整個字符串,我們只需要遍歷所有元素,然后判斷中間的字符,就可以決定這次的操作是加1還是減去1了.

代碼

class Solution {
public:int finalValueAfterOperations(vector<string>& operations) {int x(0);for (int i = 0; i < operations.size(); ++i) {if (operations[i][1]=='+')x++;else x--;}return x;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389709.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389709.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389709.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

crontab的坑

使用crontab的話&#xff0c;任何命令都需要采用絕對路徑&#xff01;&#xff01;包括輸出文件位置 如&#xff1a;nohup /usr/sbin/tcpdump -i flannel.1 -nn -q -n tcp > /home/linjj/conns.log & 轉載于:https://www.cnblogs.com/linjj/p/9006419.html

559. N 叉樹的最大深度

559. N 叉樹的最大深度 給定一個 N 叉樹&#xff0c;找到其最大深度。 最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數。 N 叉樹輸入按層序遍歷序列化表示&#xff0c;每組子節點由空值分隔&#xff08;請參見示例&#xff09;。 示例 1&#xff1a; 輸入&#…

python Tags 母板 組件 靜態文件相關 自定義simpletag inclusion_tag

一.Tags(一)for 1.基本用法 <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} </ul> 2.for循環可用的一些參數 forloop.counter 當前循環的索引值&#xff08;從1開始&#xff09; …

el表達式取值優先級

不同容器中存在同名值時&#xff0c;從作用范圍小到大的順序依次嘗試取值&#xff1a;pageContext->request->session->application 轉載于:https://www.cnblogs.com/wrencai/p/9006880.html

數據探索性分析_探索性數據分析

數據探索性分析When we hear about Data science or Analytics , the first thing that comes to our mind is Modelling , Tuning etc. . But one of the most important and primary steps before all of these is Exploratory Data Analysis or EDA.當我們聽到有關數據科學或…

5930. 兩棟顏色不同且距離最遠的房子

5930. 兩棟顏色不同且距離最遠的房子 街上有 n 棟房子整齊地排成一列&#xff0c;每棟房子都粉刷上了漂亮的顏色。給你一個下標從 0 開始且長度為 n 的整數數組 colors &#xff0c;其中 colors[i] 表示第 i 棟房子的顏色。 返回 兩棟 顏色 不同 房子之間的 最大 距離。 第 …

一起了解原型模式

原型模式 原型模式&#xff0c;用起來其實就是做clone操作&#xff0c;clone一個對象&#xff0c;越過構造器&#xff0c;在特定使用場景下增加效率。 UML 使用場景&#xff1a; 類初始化需要消耗很多資源&#xff0c;比較耗時。new方式非常繁瑣&#xff0c;還涉及到權限之類的…

c++與c語言的區別部分

1.new <malloc> delete <free> 2.多態&#xff1a; 重載 <函數 操作符> 類似于c中的變化參數 虛函數3.模板 4.class類<面向對象> 繼承 5.名空間 &#xff08;防止數據沖突問題 &#xff0c; 數據安全&#xff09; 6.引用 &a…

stata中心化處理_帶有stata第2部分自定義配色方案的covid 19可視化

stata中心化處理This guide will cover an important, yet, under-explored part of Stata: the use of custom color schemes. In summary, we will learn how to go from this graph:本指南將涵蓋Stata的一個重要但尚未充分研究的部分&#xff1a;自定義配色方案的使用。 總而…

5201. 給植物澆水

5201. 給植物澆水 你打算用一個水罐給花園里的 n 株植物澆水。植物排成一行&#xff0c;從左到右進行標記&#xff0c;編號從 0 到 n - 1 。其中&#xff0c;第 i 株植物的位置是 x i 。x -1 處有一條河&#xff0c;你可以在那里重新灌滿你的水罐。 每一株植物都需要澆特定…

Anaconda配置和使用

為什么80%的碼農都做不了架構師&#xff1f;>>> 原來一直使用原生python和pip的方式&#xff0c;換了新電腦&#xff0c;準備折騰下Anaconda。 安裝過程就不說了&#xff0c;全程可視化安裝&#xff0c;很簡單。 安裝后用“管理員權限”打開“Anaconda Prompt”命令…

qml: C++調用qml函數

C調用qml函數&#xff0c;是通過下面的函數實現的&#xff1a; bool QMetaObject::invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericReturnArgument ret, QGenericArgument val0 QGenericArgument( Q_NULLPTR ), QGenericArgument val1 QG…

python 插補數據_python 2020中缺少數據插補技術的快速指南

python 插補數據Most machine learning algorithms expect complete and clean noise-free datasets, unfortunately, real-world datasets are messy and have multiples missing cells, in such cases handling missing data becomes quite complex.大多數機器學習算法期望完…

5186. 區間內查詢數字的頻率

5186. 區間內查詢數字的頻率 請你設計一個數據結構&#xff0c;它能求出給定子數組內一個給定值的 頻率 。 子數組中一個值的 頻率 指的是這個子數組中這個值的出現次數。 請你實現 RangeFreqQuery 類&#xff1a; RangeFreqQuery(int[] arr) 用下標從 0 開始的整數數組 ar…

NIO 學習筆記

0. 介紹 參考 關于Java IO與NIO知識都在這里 &#xff0c;在其基礎上進行修改與補充。 1. NIO介紹 1.1 NIO 是什么 Java NIO 是 java 1.4, 之后新出的一套IO接口. NIO中的N可以理解為Non-blocking&#xff0c;不單純是New。 1.2 NIO的特性/NIO與IO區別 IO是面向流的&#x…

[原創]java獲取word里面的文本

需求場景 開發的web辦公系統如果需要處理大量的Word文檔&#xff08;比如有成千上萬個文檔&#xff09;&#xff0c;用戶一定提出查找包含某些關鍵字的文檔的需求&#xff0c;這就要求能夠讀取 word 中的文字內容&#xff0c;而忽略其中的文字樣式、表格、圖片等信息。 方案分析…

ab 模擬_Ab測試第二部分的直觀模擬

ab 模擬In this post, I would like to invite you to continue our intuitive exploration of A/B testing, as seen in the previous post:在本文中&#xff0c;我想邀請您繼續我們對A / B測試的直觀探索&#xff0c;如前一篇文章所示&#xff1a; Resuming what we saw, we…

1886. 判斷矩陣經輪轉后是否一致

1886. 判斷矩陣經輪轉后是否一致 給你兩個大小為 n x n 的二進制矩陣 mat 和 target 。現 以 90 度順時針輪轉 矩陣 mat 中的元素 若干次 &#xff0c;如果能夠使 mat 與 target 一致&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 示例 1&#xff1a; 輸…

samba登陸密碼不正確

win7訪問Linux Samba的共享目錄提示“登錄失敗&#xff1a;用戶名或密碼錯誤”解決方法 解決辦法&#xff1a;修改本地安全策略 通過Samba服務可以實現UNIX/Linux主機與Windows主機之間的資源互訪&#xff0c;由于實驗需要&#xff0c;輕車熟路的在linux下配置了samba服務&…

Java構造函數的深入理解

我們人出生的時候&#xff0c;有些人一出生之后再起名字的&#xff0c;但是有些人一旦出生就已經起好名字的。那么我們在 java 里面怎么在對象一旦創建就賦值呢&#xff1f; public class Person {String name; // 姓名int age; // 年齡public static void main(String[]…