演算法筆記 字元子串以及substr 的應用

2021-10-03 15:55:03 字數 981 閱讀 6695

substr()介紹:

substr是c++語言函式,主要功能是複製子字串,要求從指定位置開始,並具有指定的長度。如果沒有指定長度_count或_count+_off超出了源字串的長度,則子字串將延續到源字串的結尾。

basic_string substr(size_type _off = 0,size_type _count = npos) const;

引數_off

所需的子字串的起始位置。字串中第乙個字元的索引為 0,預設值為0.

_count

複製的字元數目

返回值乙個子字串,從其指定的位置開始

1.題目描述:

輸出示例:

題目分析:

(1)輸入字串

**:

#include#include#includeusing namespace std;

int main(){

string ss;

while(cin>>ss){

string a[ss.size()];

for(int i=0;i**分析:

(1)定義乙個字串陣列,儲存每個子串;

string a[ss.size()];

(2)字串的長度即為字串的個數,比如grain,長度為5,則有5個子串,故使用for迴圈,i從0到ss.size();

for(int i=0;i(3)使用substr(i,ss.size()-i),表示 從i開始,複製長度為ss.size()-i的子串到a[i];

(4)對字串陣列按字典順序排序;

(5)順序輸出

演算法筆記 問題 A 字串 最長回文子串

輸入乙個字串,求出其中最長的回文子串。子串的含義是 在原串中連續出現的字串片段。回文的含義是 正著看和倒著看相同。如abba和yyxyy。在判斷回文時,應該忽略所有標點符號和空格,且忽略大小寫,但輸出應保持原樣 在回文串的首部和尾部不要輸出多餘字元 輸入字串長度不超過5000,且佔據單獨的一行。應該...

最長回文子串以及 Manacher 演算法

正如孔乙己知道 回 字有四種寫法 這個問題也有四種解決的方法 暴力法列舉這個字串的所有子串,再判斷是否為回文。時間複雜度為 o n 3 此處不實現,太弱智了 中心擴充套件法 從字串的每乙個字元開始,以此為中心,向兩側擴充套件,直到不是回文為止。這種方法的時間複雜度是 o n 2 但是要考慮到許多特殊...

關於oracle中字串的擷取 substr

昨天在工作中遇到了擷取字串問題的,特地的學習了一下substr函式,在此做個記錄 1 擷取不帶特殊欄位的某乙個特定字串 1 從字串左邊某乙個位置擷取到其後面多少位 select substr abcdefghijklmn 2,3 from dual 2 從字串左邊某乙個位置 包括一位 擷取到最後 s...