• 编程常见题目2


    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 ans = new ArrayList<>();
        public String[] permutation(int n)
        {
            Map map = new HashMap<>();
            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 map, String[] temp, int loc, int s)
        {
            if( loc==s ){
                ans.add(Arrays.toString(temp)); 
                return;
            }
            for (String c : map.keySet())
            {

  • 相关阅读:
    JSP+access手机销售系统免费LW+系统
    自学Python第二十二天- Django框架(二) ORM、表单组件
    K8S V1.18.1 离线一键部署安装
    join on后面 加条件 与 where后面加条件的区别
    day13--JDK的安装和环境变量的配置
    第五章 使用管理门户监控 - 监控日志
    vue中动态引入图片为什么要是require, 你不知道的那些事
    顺序结构 与 选择结构
    Kafka的消息存储机制
    数据解析之Xpath解析(超详细定位)
  • 原文地址:https://blog.csdn.net/liangmaoxuan/article/details/126774704