NYOJ 1112 求次數 字串

2021-07-08 10:07:32 字數 983 閱讀 4659

時間限制:

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

思路:暴力判斷超時了,然後就用結構體把所切割出的字串存起來,然後像普通的陣列去重一樣,排序判斷重複的個數

ac**:

#include#include#include#include#include#define maxn 201000

#define max(a,b) a>b?a:b

#define fab(a) ((a)>0?(a):-(a))

#define mem(x) memset(x,0,sizeof(x))

#define inf 0xfffffff

using namespace std;

char ss[maxn];

char ne[20];

struct s

a[maxn];

int num;

bool cmp(s aa,s bb)

int main()

sort(a,a+num,cmp);

strcpy(ne,a[0].str);

for(i=1;i

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出...

NYOJ 1112 求次數(map容器)

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

數字轉字串 字串轉數字

數字轉字串 這裡首先用到乙個陣列逆置函式如下 void reverse char arr 逆置 for p arr p arr p 將arr陣列逆置 因為將乙個數字轉成字串,若果是從右往左依次獲得,操作較容易,所以以此得到的字串是數字的逆序字串,所以要逆置,才可得到順序 如下 void myitoa...