經典中的經典之字符串

前言:前段時間發燒了,所以耽誤了很多事情,一直沒有更新,多穿點衣服,感冒不好受。

接下來有時間就會陸續更新一些基礎的算法題,題目都很經典,大家可以先嘗試著做,再看

解析。

第一題:

392f380ff293499889efc6ec0c065828.png03698de334e84bb9960690587ea240c1.png

思路:先來審題,對于這種題目很長的題更應該耐著性子來讀,把大意讀懂,接著一步步模擬,明確優先順序,那一步做什么判斷,做之前可以先寫一下思路,再來上手實操。

這道題看起來抽象,其實確實抽象,一般的人做不出,除非你是二班的人,我改代碼都改了有兩個小時。首先你應該判斷你輸入的字符串是否展開,不展開的話又分兩種,一種是右邊字符是左邊的后繼,,那么刪除減號輸出;第二種,如果右邊比左邊ascII小,那么保留減號直接輸出。如果展開的話,先判斷是正序還是逆序,同時你又要判斷是否;'-'兩邊的字符是否都是數字還是都是字母,是的話才能繼續展開,否則不展開。然后展開的話循環的左邊界就是左字符加一,到右邊界-1,同時右邊界取不到,接著又要更具p2輸出循環輸出字符的次數,在循環內部根據p1的取值輸出大小寫,這里我定義了一個字符串,將字符填進字符串,方便后續的逆序輸出。最后這里面還有很多細節,大家可以思考,比方說數組越界,逆序輸出等等..

2fc769dc02c74d52b3b9e8d3157ffab5.png

第二題:

7357de01192746fbb7651f3896dd4e20.png

思路:注意到要輸出的是單詞,我們可以定義三個數組,分別是作為中間變量的,最長和最短字符串,如果中間變量大于最長就更新長度和單詞。接著就是具體,可以用ch=getchar(),如果讀到\n或者eof退出,碰到分隔符來判斷,沒碰到就把這個字符填進去中間變量字符串

31c78105380249e3a85423143409f306.png

第三題:

cd173ffa1a474103844657dc2d2b67b4.png思路:就是對著葫蘆畫瓢。要判斷新的字符串,你就得先定義兩個新的字符串,然后在給定的邊界中遍歷,將它添加進新的字符串,然后來比較即可

ba84c33648884a6dbd2d0d225c4022ce.png第四題:

9a15ee2f73aa453ab8b6d3e2bc84c952.png思路:這個題看起來簡單,其實也要好好想一想。這里你可以這么想先定義個數組cnt[26]來計數等下出現字符串的時候減去’a'表示字母所在的位置,循環遍歷字符串的時候,出現一次就計數一次,然后重新遍歷數組,再判斷輸出

7a042112822c4ed18d2020fa46cb7161.png

第五題:

c433bdb55af14462a72db797055bbdce.png

思路:依葫蘆畫瓢。注意判斷一下,最后一個字符是加上第一個字符,然后輸出即可

5ab96541daf24d55aa63935d02459bf3.png

第六題:

39e13c3e8931470e8ea674dcce81305d.png

思路:

題意很簡單,就是把數字字符的個數統計一下,然后輸出個數和字符,那么肯定要定義計數器cnt

然后判斷相鄰兩個字符是不是相同,相同cnt++不相同就輸出,值得注意的是,要判斷相鄰兩個,那么就要從1開始遍歷,從0的話就越界了。最后還要再輸出一遍,原因就是如果最后幾個是相同的數字字符,循環里面就不會把他輸出,舉個例子最后幾個數字是222,他的cnt一直加到3,就退出循環了,所以最后再輸出一次。

第七題:

e2037f358fd94557bae1182901a387b2.png

思路:既然要統計鍵盤總次數,就要根據你輸入的字符串的每一個字母來確定,所以你得將輸入按動一次,二次,三次,四次出現的字符存入一個數組,并把字符作為下標因為你遍歷的字符串是字母,把數值當作數組的值,最后就和即可。

ef4765d893c84842b8979a7bf0341371.png第八題:

29d95ad01e654a4aac256b1781955ea4.png

思路:這個題看起來很抽象,但是題意很好懂,就是先定義二維數組,接著輸出,如果是地雷輸出*不是地雷判斷這個位置的八個方位有多少個地雷加起來,輸出。這里介紹兩種方法,一種就是用方向數組來優化代碼,另外一種就是用常規if判斷

efb9798f354e46a0bbb0f9d5e9273d8c.png在這里面,d[x]表示橫行移動d[y]表示縱向移動,例如當d[1+dx[0]][1+[dy[0]]就表示d[2][0],就是向左移動一格判斷。如果用八個if來判斷的話就是,把else里面的語句更改為

942ed99004fc448b812480b8395bcca2.png

第九題:

b112d03519c54acab686814c105f654c.png

思路:這個題很簡單,因為字符串有空格,所以用getline,然后稍微判斷一下即可

第十題:

61056ed2a9f741efb8fbb78c90994192.png

思路:這個題沒什么說的,字符串中有空格,所以讀取的時候用getline,然后分別統計即可

ed23600241a74ec9a78d43a529f4e912.png

第十一題:

c732ebcaba2547a3a89d06654548752f.png思路:

需要找vk,同時,你能更改一個字母,那么你可以這樣,先找到所以出現的vk然后將他更改為其他的字符,計數器++,方便下一次改字符的時候計數,然后你就要找vv或者vk,要考慮全面找到vv的話改后一個v,找到kk 的話改第一個k,找到就break;最后輸出即可。

68283dfb06064847a6c61ff132bbcffa.png

第十二題:

3451d40877a64d87bed53519ea5a645c.png

思路:

這個題的題意其實有點抽象,不太好理解,我整這道題也整了好久。

注意他問的是字符串中有多少個boy和girl包括被覆蓋的,先從這個輸入輸出來看,為什么boy是4,因為,一個眼睛可見的boy,還有一個o,說明什么?說明o左右兩邊的b 和y都被覆蓋了,后面的yy同理。想到這里,你肯定還是懵。你就要統計次數了,那么統計什么呢,比方說出現一個b那么你計數器是不是要++,出現o計數器++,出現y,計數器也++,但是里面必然會有重復的,比方說你先是統計b,出現b就計數器++的話,包括boy,bo,出現o包括bo,oy,是不是發現bo重復統計了,y也是同理,所以為了避免重復,你只需在當出現o的時候加一個條件,就是不能出現b,同理出現y的時候不能出現b和o,再來計數,這樣就避免了重復。

8474c7d9a24c4a12ac339d0c40f0da7d.png第十三題:

1b2470cee8364ad682a747913903d60a.png思路:

題目看似抽象,實則確實抽象。要理解題意。具體來做的話好像的就是打表格。

把所有的英文數字單詞計入一個數組,所對應數字的平方%11的值,再放到一個數組,如何循環六次,每一次輸入一個單詞,判斷是不是數字單詞,是的話就把對應數字平方%11的值賦給一個新的數組,存起來。最后排序一下輸出。并且如果排完之后的數字不是第一位的話,如果數值比10小前面的0,不能省略,所以,這里還要用if判斷一下,再來輸出。

f2e7581cf3c142c99425bbd76ca8c259.png

總共13題,到此結束,感謝你的閱讀,與君共勉!

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

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

相關文章

Windows常用cmd網絡命令詳解

中午好,我的網工朋友。 上回給你們梳理了一些有趣的cmd命令,很多朋友希望再拓展一下,這不就來了? 今天從windows切入,給你分享一些常用cmd網絡命令,如果能熟悉上手,很多功能都可以快速實現&am…

Java Class 類文件格式看這一篇就夠了

本文將揭開Java Class文件的神秘面紗,帶你了解Class文件的內部結構,并從Class文件結構的視角告訴你: 為什么Java Class字節碼文件可以“寫一次,遍地跑”?為什么常量池的計數從1開始,而不是和java等絕大多數…

封裝Redis工具類

基于StringRedisTemplate封裝一個緩存工具類,滿足下列需求: 方法1:將任意Java對象序列化為json并存儲在string類型的key中,并且可以設置TTL過期時間 方法2:將任意Java對象序列化為json并存儲在string類型的key中&…

【JVM精講與GC調優教程(概述)】

如何理解虛擬機(JVM)跨語言的平臺 java虛擬機根本不關心運行在其內部的程序到底是使用何種編程語言編寫的,他只關心“字節碼”文件。 java不是最強大的語言,但是JVN是最強大的虛擬機。 不存在內存溢出? 內存泄露? JAVA = (C++)–; 垃圾回收機制為我們打理了很多繁瑣的…

力扣刷題第二十八天--二叉樹

前言 今天的五道題都是層序遍歷的模板,深度優先的遞歸還不太熟。繼續努力。 內容 一、在每個樹行中找最大值 515.在每個樹行中找最大值 給定一棵二叉樹的根節點 root ,請找出該二叉樹中每一層的最大值。 廣度優先搜素 時間復雜度:O(n)…

算法基礎:KMP算法詳細詳解

目錄 1、幾個最基本的概念 2、暴力算法 3、KMP算法 4、KMP代碼實現 5、時間復雜度 1、幾個最基本的概念 字符串的前綴: 主串(目標串)從索引0開始的子串被稱為主串的前綴。 字符串的后綴: 主串從索引大于0的位置到結尾的子串…

【人工智能入門學習資料福利】

總目錄如下(部分截取): 百度網盤鏈接:https://pan.baidu.com/s/1bfDVG-xcPR3f3nfBJXxqQQ?pwdifu6 提取碼: ifu6

Sentinel在Spring Cloud中的流量控制與熔斷降級:保障你的微服務穩定運行

在當今高度互聯的世界中,微服務架構已成為構建穩健系統的基石。然而,隨著系統復雜性的增加,高并發和異常情況下,保障服務穩定性變得尤為關鍵。本文將帶你探索Spring Cloud中Sentinel框架的強大功能,它能夠為你的微服務…

協程及運用

協程 使用方法一方法二網頁下載中使用有返回值 實戰圖片實戰 一個線程多個任務,線程由操作系統開啟,比較耗資源。線程內合理分配任務,充分利用線程內的資源,一個任務io阻塞時,cpu處理其他非阻塞任務。 使用 方法一 i…

B站已經部分上線前臺實名,如不同意實名,后期賬號流量將收影響!

B站部分百萬粉絲博主的主頁顯示賬號運營人名字的政策是從10月31日開始的。當天,B站官方發布了《嗶哩嗶哩關于頭部“自媒體”賬號前臺實名的公告》,表明了其前臺實名制的實施計劃。 B站部分上線前臺實名的過程可以追溯到2021年。當時,中國政府…

window下殺指定端口進程

netstat -ano | findstr "8762" taskkill /pid 14992 /f

【LeetCode】144. 二叉樹的前序遍歷

144. 二叉樹的前序遍歷 難度:簡單 題目 給你二叉樹的根節點 root ,返回它節點值的 前序 遍歷。 示例 1: 輸入:root [1,null,2,3] 輸出:[1,2,3]示例 2: 輸入:root [] 輸出:[]…

ARM裸機-18(SD卡啟動)

1、主流的外存設備介紹 內存和外存的區別:一般是把這種RAM(random access memory,隨機訪問存儲器,特點是任意字節讀寫,掉電丟失)叫內存,把ROM (read only memory,只讀存儲器,類似于Flash、SD卡之…

如何解決安卓手機無法預覽pdf文件而是需要直接下載的問題

在開發中常常會遇到需要在一個應用里打開一份pdf文件并預覽,經真機調試時發現在蘋果手機上打開pdf文件能正常預覽,但在安卓手機打開時卻會需要我們下載才能預覽,無法直接預覽 為了解決這個問題,我們采用安裝pdfH5插件的方式&…

計算機三級嵌入式知識總結(一)

一、ARM的七種異常類型 1、復位異常RESET “復位異常RESET”通常是指在電子設備或系統中發生了一個意外的復位或重啟。這可能是由于硬件故障、軟件問題或其他未知的原因引起的。當設備經歷復位異常時,它可能會丟失正在進行的操作或設置,導致數據丟失或系…

LINUXZ

10.6.2 AT24C02 訪問方法 設備地址 從芯片手冊上可以知道,AT24C02 的設備地址跟它的 A2、A1、A0 引腳有關: 圖 10.36 AT24C02 設備地址引腳配置 294 / 577 打開 I2C 模塊的原理圖: 開發板配套網盤資料\04_開發板原理圖\ 04_Extend_modules\通…

SQL語句執行過程

一條 SQL 的執行過程可以大致分為以下幾個步驟: 連接器: ○ 客戶端與數據庫建立連接,并發送 SQL 語句給數據庫服務。 ○ 連接器驗證客戶端的身份和權限,確保用戶有足夠的權限執行該 SQL 語句。查詢緩存: ○ 連接器首先…

基于鷹棲息算法優化概率神經網絡PNN的分類預測 - 附代碼

基于鷹棲息算法優化概率神經網絡PNN的分類預測 - 附代碼 文章目錄 基于鷹棲息算法優化概率神經網絡PNN的分類預測 - 附代碼1.PNN網絡概述2.變壓器故障診街系統相關背景2.1 模型建立 3.基于鷹棲息優化的PNN網絡5.測試結果6.參考文獻7.Matlab代碼 摘要:針對PNN神經網絡…

Motion v5.6.7 蘋果電腦上的視頻編輯

Motion mac是一款運行在蘋果電腦上的視頻編輯軟件,它能讓您自定Final Cut Pro字幕、轉場和效果。 它可以在2D或3D空間中創建您自己的精美炫目的動畫,同時還能在您工作時提供實時反饋。廣色域支持讓你的動態圖形更顯出色光彩。3D文字功能經過優化增強&am…

01背包與完全背包學習總結

背包問題分類見下圖 參考學習點擊:代碼隨想錄01背包講解 01背包問題: 核心思路: 1、先遍歷物品個數,再遍歷背包容量。因為容量最先是最大的,往背包里放物品,所以背包容量在慢慢減少,但背包容量…