/**
* 递归实现变位字
* Create by Administrator
* 2018/6/20 0020
* 上午 10:23
**/
public class AnagramApp { static int size;
static int count;
static char[] arrChar = new char[100]; public static void doAnagram(int newSize){
if(newSize == 1){
return;
}
for (int i = 0; i < newSize; i++) {
doAnagram(newSize - 1);
if(newSize == 2){
displayWord();
}
rotate(newSize);
}
} public static void rotate(int newSize){
int i;
int position = size - newSize;
char temp = arrChar[position];
for (i=position+1; i < size; i++) {
arrChar[i-1] = arrChar[i];
}
arrChar[i-1] = temp;
} public static void displayWord(){
if(count < 99){
System.out.print(" ");
}else if(count < 9){
System.out.print(" ");
}
System.out.print(++count + " ");
for (int i = 0; i < size; i++) {
System.out.print(arrChar[i]);
}
System.out.print(" ");
System.out.flush();
if(count%6 == 0){
System.out.println("");
}
} private static String getString() throws IOException {
InputStreamReader inputStreamReader = new InputStreamReader(System.in);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
return bufferedReader.readLine();
} public static void main(String[] args) throws IOException{ System.out.println("Enter a word:");
String input = getString();
size = input.length();
count = 0;
for (int i = 0; i < size; i++){
arrChar[i] = input.charAt(i);
}
doAnagram(size);
}

  

java学习之—递归实现变位字的更多相关文章

  1. java学习之—递归实现二分查找法

    /** * 递归实现二分查找法 * Create by Administrator * 2018/6/21 0021 * 上午 11:25 **/ class OrdArray{ private lo ...

  2. java学习之—递归

    /** * 递归 * Create by Administrator * 2018/6/20 0020 * 上午 9:41 **/ public class TriangleApp { static ...

  3. Java学习:递归

    递归的思想 以此类推是递归的基本思想. 具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决.在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情 ...

  4. 3000字编程入门--附带Java学习路线及视频

    Title: 编程入门 GitHub: BenCoper Reference: 尚硅谷-2019 Study: 文字版+视频+实战(第一个自学的网站) Explain: 文末附带Java学习视频以及项 ...

  5. Java 学习文章汇总

    目前JAVA可以说是产业界和学术界最热门的语言,许多人都很急切想把JAVA学好. 但学习是需要步骤的,除非像电影中演的那样,能够把需要的专业技巧下载到脑海:主角只花了几秒下载资料,就马上具备飞行员的技 ...

  6. 2016最新Java学习计划

    一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 ...

  7. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  8. Java学习路线【转】

    Java学习路线[转] 第一阶段:JavaSE(Java基础部分) Java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置,程序的执行过程,相 ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

随机推荐

  1. 字符串类型的日期转化为Date类型

    //方法一:内部引用package com.th.mobula.test; import java.text.ParseException;import java.text.SimpleDateFor ...

  2. UVA1607-Gates(思维+二分)

    Problem UVA1607-Gates Accept: 111  Submit: 767Time Limit: 3000 mSec Problem Description Input The fi ...

  3. 【css】max-height,min-height,height一起使用时,优先级问题

    MDN说法: max-height 这个属性会阻止 height 属性的设置值变得比 max-height 更大. max-height 属性用来设置给定元素的最大高度. 如果height 属性设置的 ...

  4. svn解决冲突问题

    1.在linux的branchs下创建了一个新的分支branch_2后,commit.提示: 2.这是把/my_branch/index.html删除后svn update也不能解决问题 3.到myb ...

  5. JSON.stringify()和JSON.parse()的作用

    (1)JSON.stringify() 从一个对象中解析出字符串 JSON.stringify({“a”:”1”,”b”:”2”}) 结果是:”{“a”:”1”,”b”:”2”}” (2)JSON.p ...

  6. DES对称加密算法详解和c++代码实现(带样例和详细的中间数据)

    特点: 1.DES是对称性加密算法,即加密和解密是对称的,用的是同一个密钥 2.DES只处理二进制数据,所以需要将明文转换成为2进制数据 3.DES每次处理64位的数据,所以应该将明文切割成64位的分 ...

  7. 用包来组织模型 -- Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 在我们使用python manage.py ...

  8. FineUIMvc新特性速递(大间距模式,隐藏菜单垂直滚动条)

    即将发布的 FineUIMvc 新版本会引入两个重要的特性,用来提升用户体验,现在就来先睹为快吧: 大间距模式 我们已经支持的显示模式有:紧凑模式,普通模式,大字体模式. 紧凑模式: 普通模式: 大字 ...

  9. ML.NET 示例:回归之销售预测

    写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...

  10. Linux Namespace : UTS

    UTS namespace 用来隔离系统的 hostname 以及 NIS domain name.UTS 据称是 UNIX Time-sharing System 的缩写. hostname 与 N ...