귀속--변위수--문자열 관련
Common.java
package com.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Common {
public static String getString() throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
return br.readLine();
}
public static int getInt() throws IOException {
String in = getString();
return Integer.parseInt(in);
}
}
AnagramApp.java
package com.ch6.anagram;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.util.Common;
public class AnagramApp {
private static int size;
private static int count;
private static char[] arrChar = new char[100];
private static List nlist = new ArrayList();
private static List list = new ArrayList();
private static Map<String, Integer> map = new HashMap<String,Integer>() ;
public static void doAnagram(int newSize) {
if (1 == newSize) {
return;
}
for (int i = 0; i < newSize; i++) {
doAnagram(newSize - 1);
System.out.println(" " + i + " " + newSize + " ") ;
if (2 == newSize) {
displayWord();
}
rotate(newSize);
}
}
private 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;
showWord();
}
private static void showWord() {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < size; i++) {
sb.append(arrChar[i]);
}
String str = sb.toString();
System.out.println("-->" + str) ;
}
private static void displayWord() {
if (count < 99) {
System.out.print(" ");
}
if (count < 9) {
System.out.print(" ");
}
System.out.print(++count + " ");
StringBuffer sb = new StringBuffer();
for (int i = 0; i < size; i++) {
System.out.print(arrChar[i]);
sb.append(arrChar[i]);
}
String str = sb.toString();
Integer n = map.get(str) ;
if (null == n){
map.put(str, 1) ;
}else{
map.put(str, n +1) ;
}
if (nlist.indexOf(str) == -1) {
nlist.add(str);
} else {
if (list.indexOf(str) == -1) {
list.add(str);
}
}
System.out.print(" ");
System.out.flush();
if (count % 6 == 0) {
System.out.println(" ");
}
}
public static void main(String[] args) throws IOException {
while (true) {
System.out.println("Enter a word:");
String input = Common.getString();
size = input.length();
count = 0;
for (int i = 0; i < size; i++) {
arrChar[i] = input.charAt(i);
}
doAnagram(size);
System.out.println(" :" + nlist.size() + " , :");
int count = 0;
for (int i = 0; i < nlist.size(); i++) {
System.out.print(++count + "、 " + nlist.get(i) + " ");
if (count % 6 == 0) {
System.out.println(" ");
}
}
System.out.println(" ");
System.out.println(" :" + list.size() + " , :");
count = 0;
for (int i = 0; i < list.size(); i++) {
System.out.print(++count + "、 " + list.get(i) + " ");
if (count % 6 == 0) {
System.out.println(" ");
}
}
System.out.println(" ");
System.out.println(" : ");
Set entrySet = map.entrySet() ;
Iterator iter = entrySet.iterator() ;
count = 0 ;
while (iter.hasNext()){
System.out.print(++count + "、 " + iter.next() + " ") ;
if (count % 6 == 0) {
System.out.println(" ");
}
}
System.out.println(" ");
list.clear() ;
nlist.clear() ;
map.clear() ;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.