1. 程式人生 > >給定一個字串和一個整數k,對字串開頭算起的每2k個字元的前k個字元進行反轉。 如果還有少於k個字元,則將其全部撤消。 如果小於2k但大於或等於k個字元,則反轉前k個字元,

給定一個字串和一個整數k,對字串開頭算起的每2k個字元的前k個字元進行反轉。 如果還有少於k個字元,則將其全部撤消。 如果小於2k但大於或等於k個字元,則反轉前k個字元,

本題源自leetcode  541

-------------------------------------------------------------

思路:遍歷字串,跳度為 2 * k.每次反轉前k 個字串。

程式碼:

string reverseStr(string s, int k) {
        for(int i = 0; i < s.length(); i += 2 * k){
            reverse(s.begin() + i, min(s.begin() + i + k, s.end()));
        }
        return s;
    }

程式碼2;

string reverseStr(string s, int k) {
        for(int start = 0; start < s.size(); start += 2 * k){
            int i = start, j = min(start + k - 1, (int)s.size() -1);
            for(; i < j; i++, j--)
                swap(s[i],s[j]);
        }
        return s;
    }


相關推薦

給定一個字串一個整數k字串開頭2k字元k字元進行反轉 如果還有少於k字元全部撤消 如果小於2k大於等於k字元反轉k字元

本題源自leetcode  541 ------------------------------------------------------------- 思路:遍歷字串,跳度為 2 * k.每次反轉前k 個字串。 程式碼: string reverseStr(stri

給定一個m×n矩陣如果一個元素為0整行列的值設定為0.

本題源自LeetCode -------------------------------------------------- 思路1  遍歷整個陣列,遇到0  就把整行和整列不為0 的值置為* ,然後再次遍歷陣列把* 換為0 void setZeroes(vector&

C++primer第五版 編寫一段程式讀入兩字串比較是否相等並輸出結果如果不相等輸出較大的那個字串長度較大的那個字串

一個字串比較的簡單程式。 string物件相等意味著它們的長度相同且所包含的字元也全都相同。 字串的比較: 1.如果兩個string物件的長度不同,而且較短string物件的每個字元都與較長string物件對應位置上的字元相同,就說string物件小於較長string物件

在程式設計競賽中有6評委為參賽選手打分分數為0-100的整數 選手的最後得分為:去掉一個最高分一個最低分的4評委平均值 * 請寫程式碼實現(不考慮小數部分)

import java.util.Scanner; /* * 需求:在程式設計競賽中,有6個評委為參賽選手打分,分數為0-100的整數分。 * 選手的最後得分為:去掉一個最高分和一個最低分的4個評委平均值 * 請寫程式碼實現(不考慮小數部分) * *

寫入一個方法輸入一個檔名一個字串統計這個字串在這個檔案中出現的次數

public class Test1 { /* * * 寫一個方法,輸入一個檔名和一個字串,統計這個字串在這個檔案中出現的次數。 * */ public static void main

一個Stream 一個二進位制流轉換成字串

1. 將一個流轉換成字串 public partial class WebForm2 : System.Web.UI.Page { protected void Pag

0059 給定一些值一個要組成的數字求總的組合數(遍歷解答樹)

如:有1分,2分,5分,10分四種硬幣,每種硬幣無限,給定Target分錢,求多少種組合可以合成Target分錢? // ShangJi.cpp : 定義控制檯應用程式的入口點。 #include

每天一道演算法題(二):給定陣列Arr一個整數aim,請返回哪兩位置的數可以加出aim來

給定陣列Arr和一個整數aim,請返回哪兩個位置的數可以加出aim來 例如:arr={2,7,11,15},target = 9 返回{0,1},因為arr[0] + arr[1] = 2 + 7 = 9,可以假設每個數組裡只有一組答案。 大概流程是這樣的: 首先,定義一個

2. 給定一個 query 一個 text,均由小寫字母組成要求在 text 中找出以同樣的順序連 續出現在 query 中的最長連續字母序列的長度例如, query 為“acbac”,text

2. 給定一個 query 和一個 text,均由小寫字母組成。要求在 text 中找出以同樣的順序連 續出現在 query 中的最長連續字母序列的長度。例如, query 為“acbac”,text 為 “acaccbabb”,那麼 text 中的“cba”為最長的連續出現

一個方法,輸入一個檔名一個字串,統計這個字串在這個檔案中出.........

寫一個方法,輸入一個檔名和一個字串,統計這個字串在這個檔案中出現的次數. 這是一個常見的演算法提問,網上搜索結果不是很滿意。自己解決了一下: package com.xforward.ccf; import java.io.BufferedReader;import jav

實現一個LinearLayout中包含一個TextView一個EditText點選EditText是整個LinearLayout都獲取焦點主要用於登入介面賬號密碼輸入框的UI設計

最近在製作一個專案的登陸介面UI的時候,由於沒有專業美工的作圖,很多素材都是要自己去搜集,有時候難免去“盜用”其他作品中的圖片,然而圖片大小等方面適配都不太理想,邊邊角角的空隙處理也不嚴謹。       在賬號密碼輸入框的樣式設計的時候,要實現一個LinearLayout中

【演算法】以給定值x為基準連結串列分割成兩部分所有小於x的結點排在大於等於x的節點之前

/* * 直接建立兩個連結串列:一個連結串列存放小於x的元素,另一個存放大於或等於x的元素。 * 然後迭代訪問整個連結串列,將元素插入before或者after連結串列前端!!!一旦抵達連結串列末端,則表明拆分完畢,最後合併兩個連結串列。 */

CAD圖紙中存在多字型如何全部改為統一字型

我們設計完一個CAD設計檔案,並不是真的算完成一個專案,還有最後的檔案審查以及修改工作,那最後,我們想要將CAD圖紙上的所有文字改變樣式的話,一個一個的更改肯定是不可能的,除非你有絕對的耐心啦,不過你要考慮工作效率啊,親,今天小年就給大家總結一下關於提升技巧,將CAD圖紙中存在多個字型如何將

在實際的開發工作中,對字串的處理是最常見的程式設計任務本題目即是要求程式使用者輸入的串進行處理具體規則如下: (1)把每個單詞的首字母變為大寫 (2)把數字與字母之間用下劃線字元(_)分開使得更

在實際的開發工作中,對字串的處理是最常見的程式設計任務。本題目即是要求程式對使用者輸入的串進行處理。具體規則如下: (1)把每個單詞的首字母變為大寫。 (2)把數字與字母之間用下劃線字元(_)分開,使得更清晰; (3)把單詞中間有多個空格的調整為1個空格。   &

易學筆記-RabbitMQ教程1:一個生產者一個消費者

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

java去除字串兩端空格字串指定位置進行反轉

1,模擬一個trim方法,去除字串兩端的空格。思路:1,判斷字串第一個位置是否是空格,如果是繼續向下判斷,直到不是空格為止。結尾處判斷空格也是如此。2,當開始和結尾都判斷到不是空格時,就是要獲取的字串

程式設計師面試金典1.7:若M*N矩陣中某個元素為0所在的行與列清零

1.7:編寫一個演算法,若M*N矩陣中某個元素為0,則將其所在的行與列清零。 咋一看,這個問題很簡單:直接遍歷整個矩陣,只要發現值為0的元素,就將其所在的行與列清零。不過這種方法有個缺陷:在讀取被清零的行與列時,讀到的盡是零,於是所在的行與所在的列都變成了0,很快,整個矩陣

搭建單節點(一個master一個minion、k8s叢集)多pod實驗環境

一、環境描述 (1)兩個node,一個master和一個minion,其中master節點的ip是192.168.110.151,minion的ip是192.168.110.152 (2)其中151的機器上啟動私有registry,提供k8s叢集所需要的image (3)m