zoukankan      html  css  js  c++  java
  • 对字符串操作的各种笔试题

    对字符串操作的各种笔试题

    下面列出一些在笔试中常出现的对字符串操作的题目,都是本人自己写的,如果哪里不对或者有更好的实现欢迎大家指出!如果有其他题目也欢迎大家贴出来!谢谢!

    一、实现字符串的反转,如输入"abc",返回"cba"

    复制代码
     1 package com.others;
     2 
     3 public class 字符串反转 {
     4 
     5     public static void main(String[] args) {
     6         System.out.println(inverse("liuling"));
     7     }
     8     
     9     public static String inverse(String str){
    10         char[] chars = str.toCharArray(); //得到字符数组
    11         for (int i = 0; i < chars.length/2; i++) {
    12             char temp = chars[i];
    13             chars[i] = chars[chars.length-i-1];
    14             chars[chars.length-i-1] = temp;
    15         }
    16         
    17         return String.copyValueOf(chars);
    18     }
    19 
    20 }
    复制代码

    二、找字符串中最长对称串

    复制代码
     1 package com.others;
     2 
     3 
     4 public class 找字符串中最长对称串 {
     5 
     6     public static void main(String[] args) {
     7         System.out.println(findSymmetry("dgaabcddcbadfabcdefghijkkjihgfedcbagaaabbccddddccbbaaaf"));
     8     }
     9     /**
    10      * 找最长对称字符串,应该重最大长度开始找,找到就返回
    11      * 如果从最小开始找的话,效率好低,那找到一个还要继续找,直到找到最长的为止
    12      * 如果找对称的个数的话那就另当别论了,必须得所有都判断
    13      */
    14     public static String findSymmetry(String str){
    15         String symmetryStr; 
    16         for (int i = str.length()-1; i > 0; i--) { //找是否有长度为i的对称串,i从最大开始
    17             for (int j = 0; j<str.length() && j+i<str.length(); j++) {
    18                 symmetryStr = str.substring(j, j+i+1);
    19                 char[] chars = symmetryStr.toCharArray();
    20                 int k;
    21                 //判断是否为对称串
    22                 for (k = 0; k < chars.length/2; k++) {
    23                     if(chars[k] != chars[chars.length-k-1]){
    24                         break;
    25                     }
    26                 }
    27                 //如果对称则返回
    28                 if(k == chars.length/2){
    29                     return symmetryStr;
    30                 }
    31             }
    32         }
    33         return "";
    34     }
    35 }
    复制代码

    三、求字符串中对称串的个数

    复制代码
     1 package com.others;
     2 
     3 public class 求字符串中对称串的个数 {
     4 
     5 
     6     public static void main(String[] args) {
     7         System.out.println(findSymmetryCount("aabbaaffddphpaffa"));
     8     }
     9     public static int findSymmetryCount(String str){
    10         int count = 0;
    11         String symmetryStr; 
    12         for (int i = 1; i < str.length(); i++) {
    13             for (int j = 0; j<str.length() && j+i<str.length(); j++) {
    14                 symmetryStr = str.substring(j, j+i+1);
    15                 char[] chars = symmetryStr.toCharArray();
    16                 int k;
    17                 //判断是否为对称串
    18                 for (k = 0; k < chars.length/2; k++) {
    19                     if(chars[k] != chars[chars.length-k-1]){
    20                         break;
    21                     }
    22                 }
    23                 //如果对称则count+1
    24                 if(k == chars.length/2){
    25                     count++;
    26                 }
    27             }
    28         }
    29         return count;
    30     }
    31 }
    复制代码

    四、求字符串中出现频率最高的字符

    复制代码
     1 package com.others;
     2 
     3 import java.util.HashMap;
     4 import java.util.Map;
     5 
     6 public class 求字符串中出现频率最高的字符 {
     7 
     8     public static void main(String[] args) {
     9         System.out.println(findHighRateChar("abcdfeeafdaf"));
    10     }
    11     public static char findHighRateChar(String str){
    12         int max = 0;
    13         char c = ' ';
    14         Map<Character, Integer> map = new HashMap<Character, Integer>();
    15         char[] chars = str.toCharArray();
    16         for (int i = 0; i < chars.length; i++) {
    17             if(map.containsKey(chars[i])){
    18                 map.put(chars[i], map.get(chars[i])+1);
    19                 if(map.get(chars[i])>max){
    20                     max = map.get(chars[i]);
    21                     c = chars[i];
    22                 }
    23             }else{
    24                 map.put(chars[i], 1);
    25             }
    26         }
    27         return c;
    28     }
    29 }
    复制代码


    有待补充......

    我喜欢,驾驭着代码在风驰电掣中创造完美!我喜欢,操纵着代码在随必所欲中体验生活!我喜欢,书写着代码在时代浪潮中完成经典!每一段新的代码在我手中诞生对我来说就象观看刹那花开的感动!
    欢迎分享与转载
    0
     
    分类: java基础
  • 相关阅读:
    SpringBoot自定义FailureAnalyzer
    Linux 系统目录结构
    Spring Boot实战:静态资源处理
    Activiti7整合SpringBoot(十二)
    Acvitivi网关(十一)
    为什么阿里巴巴要禁用Executors创建线程池?
    lqb 基础练习 数列排序 (sort的使用)
    lqb 入门训练 A+B问题
    lqb 入门训练 序列求和 (PS:用长整数做数据的输入输出)
    lqb 入门训练 圆的面积 (PS: PI的精确计算方法 atan(1.0) * 4)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3251966.html
Copyright © 2011-2022 走看看