子串計算 map的用法

2021-08-24 20:19:38 字數 950 閱讀 1345

題目描述

給出乙個01字串(長度不超過100),求其每乙個子串出現的次數。

輸入描述:

輸入包含多行,每行乙個字串。

輸出描述:

對每個字串,輸出它所有出現次數在1次以上的子串和這個子串出現的次數,輸出按字典序排序。

示例1

輸入

10101

輸出 0 2

01 2

1 3

10 2

101 2

確實是需要一小段一小段來查

考慮兩個問題:如何查詢子串;如何保證不遺漏子串;要最後保證字典序排序

map可以用string做鍵;用find查詢有無string;用值表示次數;本身是字典序

不遺漏子串,就從第乙個字母開始遍歷,每次從當前位置依次往後加乙個,就是正常的計數所有可能子串的思路

#include

#include

#include

#include

#include

#include

using

namespace

std;

mapcom;

map::iterator it;

int main()}}

for (it = com.begin(); it != com.end(); it++)

}}

插入:

mapstudent.insert(pair< int, string>(1, 「student_one」)); 或者直接

mapstudent[1] = 「student_one」;

第一種插入在有key值時不會插入,第二種會覆蓋原來的值

map.size()返回當前插入了多少資料

1149 子串計算(map的應用)

題目描述 給出乙個01字串 長度不超過100 求其每乙個子串出現的次數。輸入 輸入包含多行,每行乙個字串。輸出 對每個字串,輸出它所有出現次數在1次以上的子串和這個子串出現的次數,輸出按字典序排序。樣例輸入 10101 樣例輸出 0 2 01 2 1 310 2 101 2 2010年北京大學計算機...

1149 子串計算

1149 子串計算.cpp 定義控制台應用程式的入口點。題目1149 子串計算 時間限制 1 秒記憶體限制 32 兆特殊判題 否提交 1121解決 644 題目描述 給出乙個01字串 長度不超過100 求其每乙個子串出現的次數。輸入 輸入包含多行,每行乙個字串。輸出 對每個字串,輸出它所有出現次數在...

10A 子串計算

總時間限制 1000ms 記憶體限制 65536kb 描述給出乙個只包含0和1的字串 長度在1到100之間 求其每乙個子串出現的次數。輸入一行,乙個01字串。輸出對所有出現次數在1次以上的子串,輸出該子串及出現次數,中間用單個空格隔開。按子串的字典序從小到大依次輸出,每行乙個。樣例輸入 10101樣...