Java递归算法——变位字



轮换的含义
1.c ats --> 2.ca st
3.c tsa --> 4.ct as
5.c sat --> 6.cs ta
7. atsc
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; //=================================================
// File Name : Anagram_demo
//------------------------------------------------------------------------------
// Author : Common //类名:BinarySearch_Find
//属性:
//方法: //主类
//Function : Anagram_demo
public class Anagram_demo { static int Size;
static int count=0;
static char[] arrChar = new char[100]; public static void main(String[] args) throws Exception{
// TODO 自动生成的方法存根
System.out.println("请输入一个单词:");
String input = getString();
Size = input.length();
for(int i=0;i<Size;i++){
arrChar[i] = input.charAt(i);
}
doAnagram(Size);
} public static void doAnagram(int newSize){
if(newSize == 1) //只有一个就不做任何处理
return;
for(int i=0;i<newSize;i++){
doAnagram(newSize - 1);
if(newSize == 2){
displayWord();
}
rorate(newSize);
}
} public static void displayWord(){
System.out.print(++count);
for(int i=0;i<Size;i++){
System.out.print(arrChar[i]);
}
System.out.println("、");
} public static void rorate(int newSize){ //轮换函数 int position = Size - newSize;
char temp = arrChar[position];
for(int i=position;i<Size-1;i++){
arrChar[i] = arrChar[i+1];
}
arrChar[Size-1] = temp;
} //输出方法
public static String getString() throws IOException{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
} //输出方法
public static int getInt() throws IOException{
String s = getString();
return Integer.parseInt(s); } }
Java递归算法——变位字的更多相关文章
- java学习之—递归实现变位字
/** * 递归实现变位字 * Create by Administrator * 2018/6/20 0020 * 上午 10:23 **/ public class AnagramApp { st ...
- Java安全套接字扩展——JSSE
上节已经介绍了SSL/TLS协议的通信模式,而对于这些底层协议,如果要每个开发者都自己去实现显然会带来不必要的麻烦,正是为了解决这个问题Java为广大开发者提供了Java安全套接字扩展--JSSE,它 ...
- Java 安全套接字编程以及 keytool 使用最佳实践
Java 安全套接字编程以及 keytool 使用最佳实践 http://www.ibm.com/developerworks/cn/java/j-lo-socketkeytool/
- Java套接字
前言: 本文补充一下Java关于套接字方面的内容,因为其应用相对比较简单,所以下面介绍两个程序实例. ------------------------------------------------- ...
- [置顶] Java套接字Socket编程
1)概念 网络编程基本模型就客户端到服务器的模型,也就是我们常见的C/S模型.简单的说就是两个进程间相互通信的过程.即通信双方一方作为服务器等待客户端提出请求并给以回应,另一方作为客户端向服务器提出请 ...
- Java
递归算法
其基本思路是递归算法设计:对于一个复杂的问题,原问题分为几个子问题相似相对简单.继续下去,直到孩子可以简单地解决问题,这是导出复发,因此,有复发的原始问题已经解决. 关键是要抓住: (1)递归出口 ( ...
- java递归算法提前返回值带出
/** * */ package testJava.java.foreach; import java.util.ArrayList; import java.util.LinkedList; imp ...
- Java如何计数字串中的一组词组?
在Java编程中,如何计数字串中的一组词组? 以下示例演示如何使用regex.Matcher类的matcher.groupCount()方法来计算字符串中的一组词组. package com.yiib ...
- Java 安全套接字编程以及keytool 使用最佳实践
概述 利用 Java 的 JSSE(Java Secure Socket Extension)技术,我们可以方便的编写安全套接字程序,关于 JSSE 的介绍,可以参阅 Oracle 网站提供的 JSS ...
随机推荐
- Entity Framework Code First (二)Custom Conventions
---------------------------------------------------------------------------------------------------- ...
- jQ插件--时间线插件和拖拽API
这个时间轴是工作上用到的,自己写了一个, qq空间有时间轴的控件, 百度文库也有时间轴的控件: 百度的时间轴大概是这样的: 用户点击对应的锚链接, 那个三角会滚动, 然后左侧的界面也会滚动: 实际的 ...
- Html+js 控制input输入框提示
<input type="text" class="fl plsearch_txt" id="key" value="请输入 ...
- Windows 8.1 安装Ruby on Rails手记
最近喜欢上了狂拽酷炫的Ruby 看了诸多文章都是Linux或Mac OS X环境配置,文章末尾还不忘把windows黑成一坨... 表示很无语.. 作为新世纪隐秘而强大的 .Net程序员 怎能脱离宇宙 ...
- 【BZOJ-1923】外星千足虫 高斯消元 + xor方程组
1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 766 Solved: 485[Submit][Status ...
- PHP Multipart/form-data remote dos Vulnerability
catalog . Description . Analysis 1. Description PHP is vulnerable to a remote denial of service, cau ...
- AndroidStudio不能解析R的一种可能
最近在做一个APP,突然就无法编译了,提示信息: 查了半天也没找到好的解决办法,最后想起来误删了一个文件,然后Ctrl+Z回退了事,结果不知为何,那个图片文件损坏了,倒是R无法编译出来,方才报错. 记 ...
- os和sys模块
sys模块 sys模块主要是用于提供对python解释器相关的操作 函数 sys.argv #命令行参数List,第一个元素是程序本身路径 sys.path #返回模块的搜索路径,初始化时使用PYTH ...
- Oracle 数据类型
类型 含义 CHAR(length) 存储固定长度的字符串.参数length指定了长度,如果存储的字符串长度小于length,用空格填充.默认长度是1,最长不超过2000字节. VARCHAR2(le ...
- BeautifulSoup高级应用 之 CSS selectors /CSS 选择器
BeautifulSoup支持最常用的CSS selectors,这是将字符串转化为Tag对象或者BeautifulSoup自身的.select()方法. 本篇所使用的html为: html_doc ...