面試訓練字串全排列

2021-06-09 06:33:16 字數 559 閱讀 5190

這道題目看起來像遞迴,思路還是不夠清晰。

海濤的思路 是 首先 確定第一位的元素,然後確定後面的第二位的元素,這樣遞迴向下知道遇到最後乙個'\0'列印字串。

這樣遞迴起來的思路就很清晰了,

1 第一位和後面某位交換,

2 遞迴進入 後序再相似處理

3 還原第一位原來的元素。

這樣**寫起來就順手了。但是注意一點就是遞迴退出條件。為字串結尾。

我該題開始犯的錯誤

1 列印錯誤,我實在交換後列印乙個字元然後連續列印字元。此時出現的問題 就是遞迴未還原以前的元素,我就列印,這樣產生問題

**如下

#include "stdio.h"

#include "string.h"

void liststr(char *str,int start,int end)

else }

}int main()

演算法訓練 字串變換

時間限制 1.0s 記憶體限制 256.0mb 提交此題 問題描述 相信經過這個學期的程式設計訓練,大家對於字串的操作已經掌握的相當熟練了。今天,徐老師想測試一下大家對於字串操作的掌握情況。徐老師自己定義了1,2,3,4,5這5個引數分別指代不同的5種字串操作,你需要根據傳入的引數,按照徐老師的規定...

演算法訓練 字串編輯

演算法訓練 字串編輯 時間限制 1.0s 記憶體限制 512.0mb 問題描述 從鍵盤輸入乙個字串 長度 40個字元 並以字元 結束。編輯功能有 1 d 刪除乙個字元,命令的方式為 d a 其中a為被刪除的字元,例如 d s 表示刪除字元 s 若字串中有多個 s 則刪除第一次出現的。2 i 插入乙個...

演算法訓練 字串統計

演算法訓練 字串統計 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且...