阿里字串輸出的問題

2021-06-20 22:24:55 字數 525 閱讀 5161

阿里一則字串輸出的問題:

給定乙個字串,輸出其所有連續子串,如:給定字串為abcd,則要輸出的其全部連續子串為:a,b,c,d,ab,bc,cd,abc,bcd,abcd。

網上乙個兄弟給出的方法:

就是先從第乙個字元遍歷,向後輸出,再從第二個字元開始遍歷,向後輸出,依此類推,直到開始遍歷的字元為陣列的最後乙個字元。這個時間複雜度很高啊,要o(n*n*n)。

我認為另乙個方法可能更好:

假設abcd為4位二進位制數,每個位置上字母出現為1,不出現為0,則從0001(1)遍歷到1111(15)即可找出滿足條件的字串,複雜度為o(n):

0001 d

0010 c

0011 cd

0100 b

0101

0110 bc

0111 bcd

1000 a

1001

1010

1011 

1100 ab

1101

1110 abc

1111 abcd

VS中輸入字串和輸出字串問題

因為自己剛開始用vs,不是很習慣,今天發現乙個問題,就是我想實現輸入一段字串,然後在將它輸出來,發現沒有輸出,反而是聽了一會兒,然後閃退了,同樣的 放到dev c 執行卻很好使,我的 如下 include stdio.h include stdlib.h include string.h int m...

字串的逆向輸出

比如說給定一字串 i love shanlijuan 那麼它的逆向輸出就是 shanlijuan love i 這裡空白符作為單詞的分割符。方案一 使用標記法,需要乙個快取區。但是比較容易理解,就是逆向掃瞄源字串,把每個單詞正向拷貝到快取區,如下 void reverseword char p st...

字串指標的輸出

include int main void 1.printf s str 輸出的結果是 我的夢想是當一名程式猿 這句話的意思是列印整個str所指向的字串.沒有星號是因為前面有個 s,s是string字串的意思,那麼後面就得是乙個字元指標,字串是預設char型別的陣列,所以被同樣當作首位址,列印不需要...