面接問題:文字列の出現回数が最も多いアルファベットと回数(基礎構想編)
今日のお昼に会社が要求した小さな機能を書き終わった後、前の面接問題を考えました.タイトル:文字列を与えて、出現回数が最も多いアルファベットと回数(手書きコード)を見つけます
その时、mapを使いたいと思っていましたが、半分书いても自分がmapに熟练していないと感じて、手书きで书けないので、考え方を変えました.
原理:文字列分割関数により文字列を分割し,分割後の長さを判断して文字の回数を比較する.
大体機能は実現して、Stringの変化の回数はわりに多くて、性能はわりに低くて、1篇補充する暇があって、これは主に構想です.
実行結果:l,l,o,o出現回数:2文字列処理関数が実現した場合、結果は以下のlであるべきであり、o出現回数は:2ブロガー比較料理、ブログアドレスの最適化:https://blog.csdn.net/quaint_csdn/article/details/84103674
その时、mapを使いたいと思っていましたが、半分书いても自分がmapに熟练していないと感じて、手书きで书けないので、考え方を変えました.
原理:文字列分割関数により文字列を分割し,分割後の長さを判断して文字の回数を比較する.
大体機能は実現して、Stringの変化の回数はわりに多くて、性能はわりに低くて、1篇補充する暇があって、これは主に構想です.
/*
*
*/
public static void main(String[] args){
String str = "quaint,hello Word!";
System.out.println(getMaxCharAndNum(str));
}
/*
*
*
* : , .
*
*/
public static String getMaxCharAndNum(String str){
//
int maxNum = 0;
//
String maxChar = "";
// , ,
String str_Iterator = removeOtherChar(str);
// ,
str+="/";
for (int i = 0;i<str_Iterator.length();i++) {
// ,char-->String
String str_i = str_Iterator.charAt(i)+"";
//
String[] strs = str.split(str_i);
// , ,
if(strs.length-1>maxNum){
maxChar=str_i;
maxNum = strs.length-1;
}else if(strs.length-1==maxNum){
// , ","
maxChar+=(","+str_i);
}
}
maxChar+=" :"+maxNum;
return maxChar;
}
/*
* ,
* ,
*/
public static String removeOtherChar(String str){
//
return str;
}
実行結果:l,l,o,o出現回数:2文字列処理関数が実現した場合、結果は以下のlであるべきであり、o出現回数は:2ブロガー比較料理、ブログアドレスの最適化:https://blog.csdn.net/quaint_csdn/article/details/84103674