南陽oj 求次數 題目1112

2021-08-19 13:47:01 字數 831 閱讀 4614

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度: 2

描述

題意很簡單,給乙個數n 以及乙個字串str,區間【i,i+n-1】 為乙個新的字串,i 屬於【0,strlen(str)】如果新的字串出現過ans++,例如:acmacm n=3,那麼 子串為acm cma mac acm ,只有acm出現過

求ans;

輸入

line 1: t組資料(t<10)

line 2: n ,n <= 10,且小於strlen(str);

line 3:str

str 僅包含英文小寫字母 ,切長度小於10w

輸出

求 ans

樣例輸入

2

2aaaaaaa

3acmacm

樣例輸出

5

1

使用c++的stl中的set類,set集合會自動去除重複元素,所以比較前後集合的長度,如果不變就是出現了相同

#include #include #include using namespace std;

int main(){

int n,m,len,ans;

string str;

cin>>n;

while(n--){

set s;

cin>>m>>str;

ans=0;

for(int i=0;i+m-1

南陽oj 求次數 題目1112

求次數 時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述題意很簡單,給乙個數n 以及乙個字串str,區間 i,i n 1 為乙個新的字串,i 屬於 0,strlen str 如果新的字串出現過ans 例如 acmacm n 3,那麼 子串為acm cma mac acm 只有a...

NYoj 1112 求次數 水

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 題意很簡單,給乙個數n 以及乙個字串str,區間 i,i n 1 為乙個新的字串,i 屬於 0,strlen str 如果新的字串出現過ans 例如 acmacm n 3,那麼 子串為acm cma mac acm 只有acm出...

南陽oj 題目57 6174問題

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 假設你有乙個各位數字互不相同的四位數,把所有的數字從大到小排序後得到a,從小到大後得到b,然後用a b替換原來這個數,並且繼續操作。例如,從1234出發,依次可以得到4321 1234 3087 8730 378 8352 85...