leetcode-551-Student Attendance Record I(判斷是否出現連續幾個相同字符)

題目描述:

You are given a string representing an attendance record for a student. The record only contains the following three characters:

  1. 'A'?: Absent.
  2. 'L'?: Late.
  3. 'P'?: Present.

A student could be rewarded if his attendance record doesn't contain?more than one 'A' (absent)?or?more than two continuous 'L' (late).

You need to return whether the student could be rewarded according to his attendance record.

Example 1:

Input: "PPALLP"
Output: True

?

Example 2:

Input: "PPALLL"
Output: False

?

要完成的函數:

bool checkRecord(string s)

?

說明:

1、這道題給定一個字符串,其中只有三種字符P/L/A,分別代表在場/遲到/缺席。如果一個學生出現了一次以上的缺席,或者連續兩次以上的遲到,那么他就不能被獎勵。要求判斷是否某個學生能被獎勵。

2、關于A的,很容易,遍歷一遍字符串統計A出現次數,當次數大于1時,返回false,結束遍歷。

關于L的,也不難,遍歷一遍字符串,當碰到L時,判斷下一個字符和再下一個字符是否均為L,如果滿足,返回false,結束遍歷(這里要注意邊界條件,即下一個字符是否在字符串以內);如果不滿足,那么繼續處理下一個字符。

代碼如下:

    bool checkRecord(string s) {int counta=0,countl=0;int s1=s.size();for(int i=0;i<s1;i++){if(s[i]=='A'){counta++;if(counta>1)return false;}else if(s[i+2]=='L'&&s[i+1]=='L'&&s[i]=='L'){if(i+2<s1)return false;}}return true;}

上述代碼實測6ms,beats 70.11% of cpp submissions。

?

3、另一種方法

參考了討論區的代碼實現,發現了另一種實際花費時間更少的方法。

代碼同樣分享給大家,如下:

    bool checkRecord(string s) {int counta=0,countl=0;for(int i = 0;i < s.size();i++){if(s[i]=='A'){counta++;countl=0;//清空countl,重新開始if(counta>1)return false;}else if(s[i]=='L'){countl++;if(countl>2)return false;} else countl=0;}return true;}    

上述代碼實測4ms,beats 100% of cpp submissions。

這樣寫代碼看起來更加“清爽”,判斷是否出現了連續的幾個相同字符,采用的是碰到其他字符就“清空”的方法。

而2中的方法,是碰到‘L’時繼續判斷下一個以及再下一個字符是否仍是'L'的方式,這種方法不需要引進countl的頻繁計算。

筆者還是更加喜歡“清爽”的代碼,當L出現幾百次才要return false的時候,明顯清爽代碼更省時間。

這道題目給予的啟示是:當要判斷字符是否連續出現時,可以采用“清空”的方法來做。

轉載于:https://www.cnblogs.com/chenjx85/p/8984985.html

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

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

相關文章

簡單實現

1.創建接口和實現類 &#xff08;模擬實現查詢天氣&#xff09; 接口&#xff1a; package com.learning.weather;/*** * weather 接口 &#xff1a;實現模擬wsdl*/ public interface WeatherInterface {/*** 查詢天氣* param name* return*/public String queryWeather(Strin…

halcon聯合C#測量十字Mark中心

halcon聯合C#測量十字Mark中心 函數說明 public void FitRectangleMeasure(HWindow 窗口句柄, HImage 圖像, out double 中心Y坐標, out double 中心X坐標)操作步驟&#xff0c;首先繪制兩個矩形測量框&#xff1b;之后就可進行自動計算。 public void FitRectangleMeasure(…

x264 struct 學習

x264_t結構體維護著CODEC的諸多重要信息其中成員frames是一個指示和控制幀編碼過程的結構。其中current是已經準備就緒可以編碼的幀&#xff0c;其類型已經確定&#xff1b;next是尚未確定類型的幀&#xff1b;unused用于回收不使用的frame結構體以備今后再次使用。 structx26…

單例模式的新實現

單例模式的新實現 jdk1.5 之前 單例模式的兩種方式&#xff0c;兩種方法都是要把構造器保持私有的&#xff0c;并導出公有的靜態成員&#xff0c;以便允許客戶端能夠訪問該類的唯一實例。 第一種方法中&#xff0c;公有的靜態成員是個final域: //Singleton with public final f…

有關莫比烏斯反演

對于兩個定義域為整數的函數F(x)和f(x); 若有: 然后F(x)可以快速求出&#xff1b; 如何用F求解f呢&#xff1f; 莫比烏斯反演&#xff1a; 對于兩個定義域為整數的函數F(x)和f(x); 若有: 則有&#xff1a; 其中μ(x)為莫比烏斯函數&#xff0c;其定義為&#xff1a; 對于&#…

(原創)JS點擊事件——Uncaught TypeError: Cannot set property 'onclick' of null

html部分代碼&#xff1a; JS部分代碼&#xff1a; 需要實現的效果&#xff1a;點擊圖片&#xff0c;來回相互切換。 我開始的錯誤做法&#xff1a;代碼如上圖所示&#xff08;邏輯上看起來是沒有錯誤的&#xff09; 嘗試過程&#xff1a;把JS代碼放在</body>閉合標簽之前…

事務傳播機制/數據庫異常解析——2016-8-13分享總結

一. 事務的傳播機制&#xff0f;required 跟 required new 的使用與區別 基礎回顧 1.1 事務的隔離級別&#xff1a; ISOLATION_READ_UNCOMMITTED&#xff08;讀未提交&#xff09; ISOLATION_READ_COMMITTED&#xff08;讀已提交&#xff09; ISOLATION_REPEATABLE_READ&#x…

console類詳細解釋

console類詳細解釋 微軟鏈接https://docs.microsoft.com/zh-cn/dotnet/api/system.console?viewnetframework-4.8 C#中沒有標準輸入輸出關鍵字&#xff0c;要調用console類下的方法。 練習與解釋代碼 using System; using System.Collections.Generic; using System.Linq; …

VC下調用x264進行視頻編碼,

4.X264.c中,h x264_encoder_open( param ) )是用來復制參數并驗證參數的有效性,在CCS下應該是不需要驗證參數的(參數都是在程序中設置好的),因此此處只作復制參數param和初始化X264_T h的操作.(VC下程序修改記錄080106下午)修改COMMON.C中的void x264_param_default( x264_…

UploadRTOS.exe

UploadRTOS.exe類似于一個啟動并為VxWin運行做準備的工具程序。VxWin安裝之后&#xff0c;可以使用 上傳工具程序 啟動實時操作系統。 利用命令行參數,您可以使它執行不同的功能。該 上傳工具程序 包含兩個文件: UploadRTOS.exe (命令行程序) UploadR…

20155307 2016-2017 《Java程序設計》第三次實驗報告

&#xff08;一&#xff09;敏捷開發與XP 敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。“敏捷流程”是一系列價值觀和方法論的集合。從2001年開始&#xff0c;一些軟件界的專家開始倡導“敏捷”的價值觀和流程&#xff0c;他們肯定了流行做法的價值&#xff0c;但是強…

ElasticSearch創建、修改、獲取、刪除、索引Indice mapping和Index Template案例

為什么80%的碼農都做不了架構師&#xff1f;>>> The best elasticsearch highlevel java rest api-----bboss ElasticSearch客戶端框架bboss的ClientInterface 接口提供了創建/修改、獲取、刪除索引Indice和IndexTemplate的方法&#xff0c;本文舉例說明其使用方法…

ASCII碼與string的相互轉換

ASCII碼與string的相互轉換 思路&#xff1a; 1&#xff09;ASCII碼轉string&#xff1a;把字符&#xff08;串&#xff09;直接轉換為int類型&#xff0c;即可得到ASCII碼&#xff1b; 2&#xff09;string轉ASCII碼&#xff1a;將數字轉換為字符串轉出&#xff1b; {//將字…

X264代碼中一些參數的意義

Main&#xff08;int argc&#xff0c;char *argv[]&#xff09;; 為了方便起見&#xff0c;不妨改寫為&#xff1a; Main(void){ ...... intargc5; char*argv[]{ "main","-o","test.264","foreman.yuv","352x288" }; …

spring mvc注解@RequestMapping

1、url路徑映射 基本功能 2、窄化請求映射 根路徑子路徑 注意setViewName的路徑。 3、限制http請求方法 get和 post 如果是get 轉載于:https://www.cnblogs.com/jway1101/p/5773923.html

Start application automatically during controller boot-up

&#xfeff;&#xfeff; Tip English ?German Start application automatically during controller boot-up Description It is possible to start any program automatically during the boot-up procedure of the KR C4 controller. Precondition ?User group “Exper…

C#using static

平常用法&#xff1a; using 命名空間&#xff1b; using System; Console.WriteLine("Hello&#xff0c;World&#xff01;");using static用法&#xff1a; C#6中支持這種寫法&#xff0c;這樣定義后可以可以訪問類的靜態成員 WriteLine是Console類的靜態函數&am…

redis數據遷移

一&#xff1a;AOF方式 需求&#xff1a; 一個沒有數據的redis。 清空redis數據方法 bash> echo "keys *" | redis-cli --raw -p 6378 |sed -r s/(.*)/redis-cli --raw -p 6378 del \1 /g |bash 1.備份 bash> redis-cli --raw -p 6378 redis> config get di…

阿里云OSS 上傳文件SDK

Aliyun OSS SDK for C# 上傳文件 另外&#xff1a;查找的其他實現C#上傳文件功能例子&#xff1a; 1、WPF用流的方式上傳/顯示/下載圖片文件(保存在數據庫) &#xff08;文末有案例下載鏈接&#xff09; 2、WPF中利用WebClient向服務器上傳文件 3、C#文件上傳的簡單實現 4、C#實…

關于level_idc和Profile_IDC的解釋

2010-01-21 15:51:40| 分類&#xff1a; windows mobile開 |字號 訂閱 Description: Set bitstream Profile IDC. Default is 88. Note: Some profiles cannot support certain features. See MPEG-4 AVC for supported features for each profile. Reference software may…