從0到開始《七》 字串相關及位運算

2021-07-05 23:52:53 字數 1442 閱讀 6866

程式一:編寫函式any(s1,s2),將字串s2中的任意字元在字串s1中第一次出現的位置作為結果返回。如果s1中不包含s2中的字元,則返回-1。(標準庫函式strpbrk(其標頭檔案是string.h)具有同樣的功能,但它返回的是指向該位置的指標)

解法一:o(n*m)的時間複雜度,這個簡單

int any(char s1, char s2)

} } return pos;

}

解法二:o(n+m) 的時間複雜度

int any(char *s1, char *s2);	

if (s1 == null)

while (*s2 != '\0')

while (s1[i] != '\0')

return -1; // 容易漏掉哦

}

下面看下測試程式:學習學習

#include #include int main(void)

; char *rightstr =

; size_t numlefts = sizeof leftstr / sizeof leftstr[0];

size_t numrights = sizeof rightstr / sizeof rightstr[0];

size_t left = 0;

size_t right = 0;

int passed = 0;

int failed = 0;

int pos = -1;

char *ptr = null;

for(left = 0; left < numlefts; left++)

else

}else

else

else}}

}} printf("\n\ntotal passes %d, fails %d, total tests %d\n",

passed,

failed,

passed + failed);

return 0;

}

程式二:編寫乙個函式rightrot(x,n),該函式返回將x迴圈右移(即從最右端移出的位將從最左端移入)n(二進位制)位後所得到的值

解法一:正常思路

unsigned rightrot(unsigned x, unsigned n)

return x;

}

解法二:很不錯,主要是最後一句,好好領悟

unsigned int rightrot(unsigned int x, unsigned int n)

測試程式:

#include int main(void)

python從0到1 5 字串

1.字串到拼接 前面已經說過了,這也是python中一大特色就是可以直接 進行。例如a i am chinese b 我是中國人 print a b 只需注意拼接只能是字串拼接,如果有其他型別的資料,要用到強制轉換成字串就可以了。2.計算字串長度 通過len 函式實現。例如 str 人生苦短,我用p...

從0開始《九》 字串相關 grep函式的簡單實現

程式一 grep函式的簡單實現 思路 先看流程,其中可用前面的getline實現未處理的行,然後編寫函式strindex s,t 實現該目標,至於列印部分使用printf函式即可 while 還有未處理的行 include define maxline 1000 int getline char l...

02字串包含及相關問題

題目描述 假設這有乙個各種字母組成的字串a,和另外乙個字串b,字串裡b的字母數相對少一些。什麼方法能最快的查出所有小字串b裡的字母在大字串a裡都有?比如,如果是下面兩個字串 string 1 abcdefghlmnopqrs string 2 dcgsrqpo 答案是true,所有在string2裡...