【Java】基础练习(十一)

news2025/1/23 22:29:20

1.Poker

定义两个数组,一个数组存储扑克牌花色,另一个数组存储扑克牌(A~K),输出52张扑克牌(除大小王)

♥A、♥2...

(1)Poker类:

package swp.kaifamiao.codes.Java.d0824;
/*
定义两个数组,一个数组存储扑克牌花色,另一个数组存储扑克牌(A~K),输出52张扑克牌(除大小王)
 */
/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Poker {
    public static void main(String[] args) {
        String[] arr1 = {"♥️","♦️","♠️","♣️"};
        String[] arr2 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr2.length; j++) {
                System.out.printf(arr1[i] + arr2[j] + "\t");
            }
            System.out.println();
        }
    }
}

(2)运行效果:

在这里插入图片描述


2. 有效括号

给定一个只包括 ‘(’,‘)’ 的字符串,判断字符串是否有效。

     有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。​ 左括号必须以正确的顺序闭合。
  • 注意空字符串可被认为是有效字符串。

示例1:

输入: "()"
输出: true

示例2:

输入: "()()()"
输出: true

示例3:

输入: "((()))"
输出: true

示例4:

输入: "(()())"
输出: true​

示例5:

输入: "((((((()))"  ")()("
输出: false

(1)Brackets类(isJudge方法):

package swp.kaifamiao.codes.Java.d0824;

import java.util.Scanner;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Brackets {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.printf("请输入只包括“(“与“)”的字符串:");
        String str = input.next();
        String result = isJudge(str);
        System.out.println(result);
    }

    public static String isJudge(String str){
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (ch == '('){
                count++;
            } else if (ch == ')'){
                count--;
            }
            if (count < 0){
                return "无效的字符串!";
            }
        }
        return count == 0 ? "有效的字符串!" : "无效的字符串!";
    }
}

(2)运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3. 最长子串(优化版):

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

(1)MaxSubstring类:

package swp.kaifamiao.codes.Java.d0824;

import java.util.Scanner;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class MaxSubstring {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String str = input.next();

        String sub = subString(str);
        int result = sub.length();
        System.out.println("最长子串是:" + sub);
        System.out.println("最长子串的长度是:" + result);
    }

    /**
     * 给定一个字符串,请你找出其中不含有重复字符的 **最长子串** 的长度。
     * @param str
     * @return
     */
    public static String subString(String str){
        // 存储最长子串
        String max = "";
        // 子串的起始下标
        int start = 0;
        for (int end = start + 1; end < str.length(); end++) {
            // 子串的范围
            String sub = str.substring(start, end);
            // 当前位置的字符
            String current = str.substring(end, end + 1);
            // 当前位置的字符是否在子串中存在
            if (sub.indexOf(current) != -1){
                // 当前子串和目前最大子串谁大
                if (sub.length() > max.length()) {
                    max = sub;
                }

                // 找下一个子串的开始坐标
                start = str.indexOf(current, start) + 1;

                // 最长子串比剩下的长度还长
                if (max.length() > str.length() - start - 1){
                    break;
                }
            }
        }
        return max;
    }
}

(2)运行效果:

在这里插入图片描述


4.最长公共前缀

       编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。

示例1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

示例2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

(1) Prefix类(commonPrefix方法):

package swp.kaifamiao.codes.Java.d0824;

import swp.kaifamiao.codes.Java.d0817.Main;

import java.util.PrimitiveIterator;
import java.util.Scanner;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Prefix {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入第一个字符串单词:");
        String str1 = input.next();
        System.out.print("请输入第二个字符串单词:");
        String str2 = input.next();
        System.out.print("请输入第三个字符串单词:");
        String str3 = input.next();
        String[] arr = {str1,str2,str3};

        String prefix = commonPrefix(arr);
        System.out.println("最长公共前缀是:" + prefix);
    }

    public static String commonPrefix(String[] arr){
       if (arr == null || arr.length == 0){
           return "";
       }
       //将第一个字符串作为初始的公共前缀
        String prefix = arr[0];

        for (int i = 0; i < arr.length; i++) {
            String current = arr[i];
            // 从头开始比较当前字符串和公共前缀,更新公共前缀直到找到最长公共前缀或者遍历完所有字符串
            int j = 0;
            while (j < prefix.length() && j < current.length() && prefix.charAt(j) == current.charAt(j)){
                j++;
            }
            //更新公共前缀
            prefix = prefix.substring(0,j);
            if (prefix.isEmpty()){
                break;
            }
        }
        return prefix;
    }
}

(2)运行效果:

在这里插入图片描述
在这里插入图片描述


5.Excel表列名称

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

例如:

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28 
...

示例1:

输入:columnNumber = 1
输出:"A"

示例2:

输入:columnNumber = 28
输出:"AB"

示例3:

输入:columnNumber = 701
输出:"ZY"

示例4:

输入:columnNumber = 2147483647
输出:"FXSHRXW"

(1)Excel类:

package swp.kaifamiao.codes.Java.d0824;
//给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

import swp.kaifamiao.codes.Java.d0817.Main;

import java.util.Scanner;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Excel {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入整数:");
        int columnNumber = input.nextInt();
        String str = numberColumn(columnNumber);
        System.out.println(str);
    }

    public static String numberColumn(int columnNumber){
        StringBuilder sb = new StringBuilder();
        // 生成大写字母的字符集合
        String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        // 当输入的整数小于26时
        if (columnNumber <= 26 && columnNumber > 0){
            char ch = characters.charAt(columnNumber-1);
            sb.append(ch);
        }else {
            //当输入的整数大于26时
            while (columnNumber >0) {
                int remainder = ((columnNumber % 26) - 1) ;
                char ch = characters.charAt(remainder);

                sb.insert(0, ch);
                columnNumber = columnNumber / 26;
            }
        }
        return sb.toString();
    }
}

(2)运行效果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/924623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

03-Numpy基础-通用函数:快速的元素级数组函数

通用函数&#xff08;即ufunc&#xff09;是一种对ndarray中的数据执行元素级运算的函数。你可以将 其看做简单函数&#xff08;接受一个或多个标量值&#xff0c;并产生一个或多个标量值&#xff09;的矢量化包 装器。 通用函数&#xff08;ufunc&#xff09;有三种类型&…

【BUG】解决安装oracle11g或12C中无法访问临时位置的问题

项目场景&#xff1a; 安装oracle时&#xff0c;到第二步出现oracle11g或12C中无法访问临时位置的问题。 解决方案&#xff1a; 针对客户端安装&#xff0c;在cmd中执行命令&#xff1a;前面加实际路径setup.exe -ignorePrereq -J"-Doracle.install.client.validate.cli…

countDown+react+hook

道阻且长&#xff0c;行而不辍&#xff0c;未来可期 知识点一&#xff1a; new Date().getTime()可以得到得到1970年01月1日0点零分以来的毫秒数。单位是毫秒 new Date().getTime()/1000获取秒数1分钟60秒&#xff0c;1小时60分钟1hour:60*60>单位是秒 60*60*1000>单位…

远程办公中安全远程访问解决方案

什么是安全远程访问 安全的远程访问是一个至关重要的过程&#xff0c;可让您使用互联网从远处完全控制某人的设备。为了确保安全&#xff0c;为受保护的远程访问采取了额外的身份验证和加密措施。 为什么安全远程访问解决方案很重要 当 IT 技术人员从远处帮助人们解决计算机…

GWO-LSTM交通流量预测(python代码)

使用 GWO 优化 LSTM 模型的参数&#xff0c;从而实现交通流量的预测方法 代码运行版本要求 1.项目文件夹 data是数据文件夹&#xff0c;data.py是数据归一化等数据预处理脚本 images文件夹装的是不同模型结构打印图 model文件夹 GWO-LSTM测试集效果 效果视频&#xff1a;GWO…

NLNet论文总结和代码实现

Non-local Neural Networks&#xff08;非局部神经网络&#xff09;&#xff1a;使用自注意力机制捕获远程依赖。 论文&#xff1a; https://arxiv.org/pdf/1711.07971.pdf 源码&#xff1a; 长距离依赖关系&#xff0c;顾名思义&#xff0c;是要和远程建立关系&#xff0c;在l…

牛客:数对

题目&#xff1a; 解题思路&#xff1a;看到题目的时候&#xff0c;一般第1反应是用两个循环暴力解题&#xff0c;时间复杂度是O(n^2)&#xff0c;不能通过&#xff0c;所以要优化&#xff0c;通过找规律。 一、当 y < k 时&#xff0c; 不可能符合题意&#xff0c;所以 y 从…

数据集收集列表(opencv,机器学习,深度学习)持续更新

opencv 车牌识别数据集 opencv 手写数字识别数据集 机器学习 Pima Indians数据集&#xff0c;下载地址

Docker的革命:容器技术如何重塑软件部署之路

引言 在过去的几年中&#xff0c;容器技术已经从一个小众的概念发展成为软件开发和部署的主流方法。Docker&#xff0c;作为这一变革的先驱&#xff0c;已经深深地影响了我们如何构建、部署和运行应用程序。本文将探讨容器技术的起源&#xff0c;Docker如何崛起并改变了软件部…

VScode运行C语言出现的调试问题 lauch:program does not exist 解决方法

"lauch:program does not exist"错误通常表示编译器或调试器无法找到指定的可执行文件。这可能是由于几个原因引起的。首先&#xff0c;确保你的源代码文件夹路径不包含中文字符&#xff0c;因为这可能导致编译器无法识别文件。其次&#xff0c;检查你的launch.json文…

【Apollo学习笔记】——规划模块TASK之PATH_BOUNDS_DECIDER

文章目录 前言PATH_BOUNDS_DECIDER功能简介PATH_BOUNDS_DECIDER相关配置PATH_BOUNDS_DECIDER总体流程InitPathBoundsDecider1. fallbackGenerateFallbackPathBoundInitPathBoundaryGetBoundaryFromLanesAndADCUpdatePathBoundaryWithBufferTrimPathBounds 2. pull overGenerate…

自定义loadbalance实现feignclient的自定义路由

自定义loadbalance实现feignclient的自定义路由 项目背景 服务A有多个同事同时开发&#xff0c;每个同事都在dev或者test环境发布自己的代码&#xff0c;注册到注册中心有好几个(本文nacos为例)&#xff0c;这时候调用feign可能会导致请求到不同分支的服务上面&#xff0c;会…

图数据库Neo4j学习五渲染图数据库neo4jd3

文章目录 1.现成的工具2.Neo4j JavaScript Driver3.neovis4.neo4jd34.1neo4jd3和neovis对比4.2获取neo4jd34.3neo4jd3的数据结构4.4Spring data neo4.4.1 定义返回数据格式4.4.1.1NeoResults4.4.1.2GraphVO4.4.1.3NodeVO4.4.1.4ShipVO 4.4.2 SDN查询解析4.4.2.1 Repo查询语句4.…

Python可视化工具库实战

Matplotlib Matplotlib 是 Python 的可视化基础库&#xff0c;作图风格和 MATLAB 类似&#xff0c;所以称为 Matplotlib。一般学习 Python 数据可视化&#xff0c;都会从 Matplotlib 入手&#xff0c;然后再学习其他的 Python 可视化库。 Seaborn Seaborn 是一个基于 Matplo…

七大出海赛道解读,亚马逊云科技为行业客户量身打造解决方案

伴随全球化带来的新机遇和国内市场的进一步趋于饱和&#xff0c;近几年&#xff0c;中国企业出海快速升温&#xff0c;成为了新的创业风口和企业的第二增长曲线。从范围上看&#xff0c;出海市场由近及远&#xff0c;逐步扩张。从传统的东南亚市场&#xff0c;到成熟的北美、欧…

基于python+pyqt的opencv汽车分割系统

目录 一、实现和完整UI视频效果展示 主界面&#xff1a; 识别结果界面&#xff1a; 查看分割处理过程图片界面&#xff1a; 二、原理介绍&#xff1a; 加权灰度化 ​编辑 二值化 滤波降噪处理 锐化处理 边缘特征提取 图像分割 完整演示视频&#xff1a; 完整代码链…

大数据课程K6——Spark的Shuffle详解

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的定义&&特点&&目的&&优缺点; ⚪ 掌握Spark的相关参数配置; ⚪ 掌握Hadoop的插件配置; 一、Spark Shuffle详解 1. 概述 Shuffle,就是洗牌。之所以…

QtC++ 设计模式(四)——策略模式

策略模式 序言理解源码 序言 还是参考的菜鸟教程&#xff0c;会C的还是看C的方式来得舒服。 . 理解 使用符合UML规范的便于理解和回忆&#xff0c;接口其实就是普通的基类 . 源码 strategy.h /// 策略 class Strategy { public:virtual ~Strategy();/*** brief 计算* p…

AIGC ChatGPT 完成多仪表盘完成率分析

各组完成率的统计与分析的这样一个综合案例 可以使用HTML &#xff0c;JS&#xff0c;Echarts 来完成制作 我们可以借助于AIGC&#xff0c;ChatGPT 人工智能来帮我们完成代码的输出。 在ChatGPT中我们只需要发送指令就可以了。 例如&#xff1a;请使用HTMl与JS&#xff0c;…

蝴蝶翻转

蝴蝶翻转 实现一 在计算机科学和数字信号处理中&#xff0c;蝴蝶操作是一种常用于快速傅里叶变换&#xff08;FFT&#xff09;的操作。在蝴蝶算法中&#xff0c;输入数据的一部分通过特定的运算结构进行重新排列和组合&#xff0c;以便在计算FFT时实现高效处理。 蝴蝶操作的…