zoukankan      html  css  js  c++  java
  • 某书2018提前批笔试题之翻转字符串

    一、题目

      将每2k个字符的前k个翻转;如果少于k,则翻转全部字符;如果多于k少于2k,则翻转前k个,剩余保持不变。
    二、思路

      递归2k个字符串

    三、代码

    package redbook;
    
    import java.util.*;
    
    public class Main1 {
        public static void main(String[] args) {
            //输入字符串
            Scanner in = new Scanner(System.in);
            while (in.hasNext()) {
                String str = in.nextLine();
                int k = in.nextInt();
                String result = revs(str, k);
                System.out.println(result);
            }
            in.close();
        }
    
    
        public static String revs(String str, int k) {
            int len = str.length();
    
            //String转换成SStringBuffer
            StringBuffer sb = new StringBuffer();
            sb.append(str);
    
            //如果k=0,直接返回结果
            if (k == 0) {
                return str;
            }
    
            //分字符串长度<=k,>k&&<2*k,>=2k三种情况讨论
            if (len <= k) {
                sb.reverse();
                return sb.toString();
            } else if (len > k && len < 2 * k) {
                StringBuffer sb2 = new StringBuffer();
                String tempStr1 = sb.substring(0, k);
                sb2.append(tempStr1);
                sb2.reverse();
                String tempStr2 = sb.substring(k, len);
                sb2.append(tempStr2);
                return sb2.toString();
            } else if (len >= 2 * k) {
                StringBuffer sb3 = new StringBuffer();
                String tempStr3 = sb.substring(0, k);
                sb3.append(tempStr3);
                sb3.reverse();
                String tempStr4 = sb.substring(k, 2 * k);
                sb3.append(tempStr4);
                String tempStr5 = sb.substring(2 * k);
                return sb3.append(revs(tempStr5, k)).toString();
            }
            return str;
        }
    }  
    View Code

    --------------------------------------------

    参考链接:

    http://blog.csdn.net/yingzizizizizizzz/article/details/75452291

  • 相关阅读:
    算法--字符串分隔符/字符串匹配算法
    VMware虚拟机磁盘收缩的几种方法
    maven学习--生命周期
    web适配问题
    eclipse按照svn插件
    一台服务器跑两个tomcat
    postgresql数据库
    visio2013破解工具
    多线程学习
    深入理解Java:SimpleDateFormat安全的时间格式化
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7722209.html
Copyright © 2011-2022 走看看