C語言 兩類判斷子串的問題

2021-10-05 22:35:22 字數 1137 閱讀 4474

使用上次的那個c[a[i]-『a』]++;這種方法進行字串對應0到26出現的次數的計數,後通過從0到26的迴圈看特定位置兩個陣列大小是否一致可以完成第乙個問題的解決。

第二個問題因為子串內可以交換但卻不能中間加入其他字元,先將第乙個以第一種方式存入,後將第二個每n個(子串長度)一迴圈後每次都建立新的陣列,新的迴圈,新的比較。只要有乙個字母的個數不同就跳出,代表改子串不符合條件,繼續向下遍歷,如果26個都迴圈完了,說明是子串則結束。

1.

子串中間的字元可以交換順序也可以含有其他字元

如abdccba 包含ac 。

#include

#include

main()

;int d[26]

=;n=strlen

(a);

m=strlen

(b);

for(i=

0;i)for

(i=0

;i)for

(i=0

;i<

26;i++)}

printf

("yes");

}

2.s2中間字元可以交換順序但是不能含有其他字元

#include

#include

main()

; n=

strlen

(a);

m=strlen

(b);

for( i=

0; i

)for

(i =

0; i <=

(m - n)

; i++);

int j;

for(j = i; j < n+i; j++

)//遍歷建立s2中長度為len(s1)的子串

for(j =

0; j <

26; j++)}

if(j ==26)

}printf

("none");

//遍歷完所有子串都不行

}

兩類問題且模式都是正太分布的特殊情況

兩類問題且模式都是正太分布的特殊情況 設有兩種模式,w1,w2,p w1 和p w2 求這兩類模式之間的貝葉斯判別介面的方程式 當c1 c2時,兩類模式的正態分佈為 p x 1 表示為n m1,c1 p x 2 表示為n m2,c2 1和 2兩類的判別函式對應為 m1和m2是兩種模式的均值向量 mi...

C語言輸出唯一的子串

給乙個字串,求長度為m的所有不重複的子串。比如字串 aaab 我們求長度為2的子串,那麼依次為 aa aa ab 那麼不重複的子串為 aa ab 第一行是乙個整數k,表示樣例的個數。每個樣例的第一行是乙個整數m,表示所求子串的長度。第二行是乙個字串,字串全部由小寫英文本母組成,長度不超過100。按字...

關於C語言列印string類字串的問題

首先因為printf函式輸出字串是針對char 的,即printf只能輸出c語言的內建資料,而string不是c語言的內建資料。其次string型別的物件不止包含字串,還包含了許多用於操作的函式,所以 str並非字串的首位址 因此該怎麼列印string字串呢?1 利用string的成員函式c str...