zoukankan      html  css  js  c++  java
  • String的常见操作(面试题)

    String的常见操作(面试题)

    将字符串逆序输出

        public static String inverse(String str ){
    
            char chars[] = str.toCharArray();
            for(int i=0;i<chars.length/2;i++){
                char temp = chars[i];
                chars[i] = chars[chars.length-i-1];
                chars[chars.length-i-1] = temp ;
            }
    
            return String.valueOf(chars) ;
        }
    

    返回出现频率最高的字符

        public static char findHighRateChar(String str){
            int  max_num_char = 0;
            char highRateChar = ' ';
            Map<String,Integer> map = new HashMap<String,Integer>();
            char chars[] = str.toCharArray();
            for(int i=0;i<chars.length;i++){
                String char_i = String.valueOf(chars[i]);
                if(map.containsKey(char_i)){
                    map.put(char_i,map.get(char_i)+1);
                    if(map.get(char_i) > max_num_char ){
                        max_num_char = map.get(char_i);
                        highRateChar = chars[i];
                    }
                }else{
                    map.put(String.valueOf(chars[i]),1);
                }
            }
            return highRateChar;
        }
    

    找出字符串中最长的那个对称字符串

    /*找最长对称字符串,应该重最大长度开始找,找到就返回
        如果从最小开始找的话,效率好低,那找到一个还要继续找,直到找到最长的为止
        如果找对称的个数的话那就另当别论了,必须得所有都判断
    */
        public static String findMaxSymmetryStr(String str){
            String symmetryStr;
            for (int i = str.length(); i >=2; i--) { //找是否有长度为i的对称串,i从最大开始
                for (int j = 0; j<i-1 ; j++) {
                    symmetryStr = str.substring(j, i);
                    char[] chars = symmetryStr.toCharArray();
                    int k;
                    //判断是否为对称串
                    for (k = 0; k < chars.length/2; k++) {
                        if(chars[k] != chars[chars.length-k-1]){
                            break;
                        }
                    }
                    //如果对称则返回
                    if(k == chars.length/2){
                        return symmetryStr;
                    }
                }
            }
            return "";
        }
    

    找字符串中共有多少个对称的字符串

        public static int findSymmetryStrNum(String str){
         String symmetryStr;
         int count = 0;//用于计数
         for(int i=str.length();i>=2;i--){//至少要二个字符才能判断是否对称
             for(int j=0;j<i-1;j++){
                 char temp[] = str.substring(j,i).toCharArray();
                 int k;
                 for(k=0;k<temp.length/2;k++){
                     if(temp[k] != temp[temp.length-k-1]){
                         break;
                     }
                 }
                 if(k == temp.length/2){
                     count++;
                 }
             }
         }
         return count;
        }
    
  • 相关阅读:
    第二次刷题感受——路漫漫其修远兮,吾将上下而求索。
    刷题就是照镜子——第一次刷2008年初赛题感受
    第一次集训刷题感受
    我的第一个博客
    预测房价的回归问题
    电影评论的情感极性分析
    语音助手是这样子的(二)
    语音助手是这样子的(一)
    软工第一次作业
    2020软件工程第五次作业_第二组
  • 原文地址:https://www.cnblogs.com/0427mybirthday/p/7710752.html
Copyright © 2011-2022 走看看