package money;
import java.util.*;
//HJ5 进制转换 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
//0x62A3>>>6*16^3+2*16^2+'A'*16^1+3*16^0
//>> 6*16+2 >>(6*16+2)*16+'A' >>((6*16+2)*16+'A')*16+3
//即每次乘以16进制后令其为一个值,再不断加上下个数乘以16
public class HJ5{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
int sum = 0;
String s = sc.nextLine();
// 不考虑0x, 从第二位开始读取
for(int i = 2; i < s.length(); i++){
char c = s.charAt(i);
sum *= 16;
// 0 ~ 9
if(c <= '9'){
sum += (c - '0');
}else{
// A ~ Z
sum += 10;
sum += (c - 'A');
}
}
System.out.println(sum);
}
}
}
/*
16转10
Integer.parseInt(string,16);
10转2
Integer.toBinaryString(num);
10转8
Integer.toOctalString(num);
10转16
Integer.toHexString(num);
*/
/* public static void main(String[] args){
Scanner in = new Scanner(System.in);
String s = in. next();
System.out.println(Integer.parseInt(s.substring(2),16));*/
###############################################################################################
/*
1. 题目
当一个字符串满足如下条件时,我们称它是 美丽的 :
所有 5 个英文元音字母('a' ,'e' ,'i' ,'o' ,'u')都必须 至少 出现一次。
这些元音字母的顺序都必须按照 字典序 升序排布(也就是说所有的 ‘a’ 都在 ‘e’ 前面,所有的 ‘e’ 都在 ‘i’ 前面,以此类推)
比方说,字符串 "aeiou" 和 "aaaaaaeiiiioou" 都是 美丽的 ,但是 "uaeio" ,"aeoiu" 和 "aaaeeeooo" 不是美丽的 。
给你一个只包含英文元音字母的字符串 word ,请你返回 word 中 最长美丽子字符串的长度 。如果不存在这样的子字符串,请返回 0 。
子字符串 是字符串中一个连续的字符序列
示例 1:
输入:word = "aeiaaioaaaaeiiiiouuuooaauuaeiu"
输出:13
解释:最长子字符串是 "aaaaeiiiiouuu" ,长度为 13
示例 2:
输入:word = "aeeeiiiioooauuuaeiou"
输出:5
解释:最长子字符串是 "aeiou" ,长度为 5
示例 3:
输入:word = "a"
输出:0
解释:没有美丽子字符串,所以返回 0 。
提示:
1 <= word.length <= 5 * 10^5
word 只包含字符 'a','e','i','o' 和 'u' 。
*/
/**
*
* 总结:1.学会把场景用文字描述好,给类型条件预判好
* 2.StringBuffer 清零 和包含
*
*/
public class LeetCode1839
{
String[] ch = {"a", "e", "i", "o", "u"};
int i = 0;
StringBuffer sb = new StringBuffer();
StringBuffer endStr = new StringBuffer();
int j = 0;
public void handle(String[] strs)
{
while (j < strs.length)
{
if (strs[j].equalsIgnoreCase(ch[i]))
{
sb.append(strs[j]);
++j;
}
else
{
if (sb.indexOf(strs[j]) >= 0)
{
sb.setLength(0);
i = 0;
}
else
{
if (i < ch.length - 1)
{
++i;
}
else
{
i = 0;
++j;
}
}
}
if (ch[i].equals(ch[4]) && sb.indexOf(strs[4]) >= 0
&& sb.length() > endStr.length())
{
endStr.setLength(0);
endStr.append(sb);
}
}
if (j >= strs.length && ch[i].equals(ch[4]) && sb.indexOf(strs[4]) >= 0
&& sb.length() > endStr.length())
{
endStr.append(sb);
}
System.out.println("最长子字符串是: " + endStr + " ,长度为 " + endStr.length());
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
String str = "aeiaaioaaaaeiiiiouuuooaauuaeiu";
String[] strs = str.split("");
new LeetCode1839().handle(strs);
}
}
##############################################################################
package money;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/***
* 题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
* 输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔。 非法坐标点需要进行丢弃。如AA10; A1A; % ; YAD; 等。 下面是一个简单的例子 如:
* A10;S20;W10;D30;X;A1A;B10A11;;A10; 处理过程: 起点(0,0) A10 = (-10,0) S20 = (-10,-20) W10 = (-10,-10)
* D30 = (20,-10) x = 无效 A1A = 无效 B10A11 = 无效 一个空 不影响 A10 = (10,-10)* 结果 (10, -10) 注意请处理多组输入输出
* 输入描述: 一行字符串 输出描述: 最终坐标,以,分隔
*/
/*总结:
1.该题不足在输入对话框字符串不熟悉
2.数值固定值的初始化不熟悉*/
public class Move
{
List list = Arrays.asList("W", "S", "A", "D");
int x = 0;
int y = 0;
public void movePoit(String s)
{
String[] ch = s.split(";");
for (int i = 0; i < ch.length; i++ )
{
int a = -1;
try
{
a = Integer.parseInt(String.valueOf(ch[i].charAt(1)));
}
catch (Exception e)
{
}
if (list.contains(String.valueOf(ch[i].charAt(0))) && a >= 0)
{
if (String.valueOf(ch[i].charAt(0)).equalsIgnoreCase("w"))
{
x += a;
}
if (String.valueOf(ch[i].charAt(0)).equalsIgnoreCase("s"))
{
x -= a;
}
if (String.valueOf(ch[i].charAt(0)).equalsIgnoreCase("a"))
{
y -= a;
}
if (String.valueOf(ch[i].charAt(0)).equalsIgnoreCase("d"))
{
y += a;
}
}
}
System.out.println("end:("+x+","+y+")");
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
if (sc.hasNext()) {
String str = sc.next();
System.out.println("into str:"+str);
new Move().movePoit(str);
}
sc.close();
}
}
######################################################################################
package money;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class nowx
{
List
public String[] permutation(int n)
{
Map
map.put("(", n);
map.put(")", n);
per( map, new String[n*2], 0, n*2);
return ans.toArray(new String[ans.size()]);
}
public void per(Map
{
if( loc==s ){
ans.add(Arrays.toString(temp));
return;
}
for (String c : map.keySet())
{