統計重複字元(4分)
題目內容:
輸入一串字元(字元數小於80),以回車表示輸入結束,
程式設計計算並輸出這串字元中連續重複次數最多的字元和重複次數。
如果重複次數最多的字元有兩個,則輸出最後出現的那乙個。
已知函式原型:
//函式功能:統計字串中連續重複次數最多的字元及其重複的次數
//函式引數:str指向待統計的字串,指標形參tag返回重複字元最後出現的下標位置
//函式返回值:返回字元重複的次數
int countrepeatstr(char str, int *tag);
求解思路:設定乙個計數器,遍歷字串中的所有字元,若str[i] == str[i+1],則計數器加1,
同時判斷計數器的值是否大於記錄的最大重複次數max,
若大於,則用計數器的值更新max,並記錄該字元最後出現的位置i+1.
若str[i] != str[i+1],則計數器重新初始化為1。遍歷結束時,函式返回max的值。
程式執行結果示例1:
input a string:
2344455555↙
5:5程式執行結果示例2:
input a string:
sgf222257↙
2:4輸入提示資訊:"input a string:\n"
輸入格式: 用gets()輸入字串
輸出格式:"%c:%d\n"
第一種解法
#include #include int countrepeatstr(char str, char *tag);
int main()
int countrepeatstr(char str, char *tag)
else
count=1;
} return max;
}
第二種解法
#include #include int countrepeatstr(char str, int *tag);
//tag用來記錄重複次數最多的字元
int main()
int countrepeatstr(char str, int *tag)
else
count=1;
} return max;
}
查詢首個非重複字元
問題描述 編寫乙個高效的函式,找到字串中首個非重複字元。example total 首個非重複字元是 o teeter 首個非重複字元是 r 分析 最直觀也是最容易想到的方式就是對每個字元在字串中遍歷 一遍,若出現相同的字元則退出遍歷,檢視下一字元,若遍歷完整 個字串均為出現相同字元,則表明該字元是...
雙指標 替換後的最長重複字元
424.替換後的最長重複字元 給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。注意 字串長度 和 k 不會超過 104。示例 1 輸入 s abab k 2 輸出 4 解釋 用兩個 a 替換為兩...
在字串中查詢是否有重複字元
字串型別的題目是面試筆試最青睞的型別。之一。最近陸陸續續重新開始看些基礎的東西,真是 三天不練手生 很多東西都忘得差不多了。記錄在這裡偶爾回顧的時候還能翻來看看。貼上來的程式經過測試的,但也可能有隱藏的bug。方法一 這是最節省記憶體的方法,但是效率一般般。複雜度為o n2 思路是,從字串的第乙個字...