输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)
首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用Scanner获取要输入的个数,最终找到的个数也不固定,我们可以封装两个方法,并且返回值类型为数组。
我遇到的问题,开始我想到的是字符串拼接,么想到返回值用数组存,导致每次返回的个数都是固定的,就算有多个。
代码如下:
- import java.util.Scanner;
- //输入n行字符串,找出最长最短字符串(若有个数相同的,都打印出来)
- public class FindString {
- public static void main(String[] args) {
- Scanner s = new Scanner(System.in);
- System.out.println("请输入n个字符串");
- int n = s.nextInt();
- String[] arr = new String[n];
- s.nextLine();
- System.out.println("请输入字符串");
- for (int i = 0; i < n; i++) {
- arr[i] = s.nextLine();
- }
- String[] max = findMax(arr,arr[0]);
- System.out.println("最长的: ");
- for (int i = 0; i < max.length; i++) {
- if(max[i] != null){
- System.out.print(max[i]+" ");
- }
- }
- System.out.println();
- String[] min = findMin(arr,arr[0]);
- System.out.println("最短的:");
- for (int i = 0; i < min.length; i++) {
- if(min[i] != null){
- System.out.print(min[i]+" ");
- }
- }
- }
- /**
- * 找最短的
- * @param arr 输入的数组
- * @param s 数组的第一个元素
- * @return 返回的数组中放着最长的子串和null
- */
- private static String[] findMin(String[] arr, String s) {
- int min = s.length();
- String[] temp = new String[arr.length];
- for (int i = 1; i < arr.length ; i++) {
- if(arr[i].length() < min) {
- min = arr[i].length();
- s = arr[i];
- }
- }
- //走完说明找到了一个最长的,以这个长度为参考再遍历一遍数组,找到与其相同长度的
- for (int j = 0; j < arr.length ; j++) {
- if( arr[j].length() == s.length()){
- temp[j] = arr[j];
- }
- }
- return temp;
- }
- private static String[] findMax(String[] arr, String s) {
- int max = s.length();
- String[] temp = new String[arr.length];
- for (int i = 1; i < arr.length ; i++) {
- if(arr[i].length() > max) {
- max = arr[i].length();
- s = arr[i];
- }
- }
- for (int j = 0; j < arr.length ; j++) {
- if( arr[j].length() == s.length()){
- temp[j] = arr[j];
- }
- }
- return temp;
- }
- }
输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)的更多相关文章
- C#中的字符串处理——找出最长数字子串
百度测试部2015年10月份的面试题之——字符串处理,找出最长的子串. 代码如下: private static string SelectNumberFromString(string input) ...
- (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
/** * 有一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串 例如: String str ="abc", m=2 得到结果是 "ab" &quo ...
- 最长(大)回文串的查找(字符串中找出最长的回文串)PHP实现
首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串.比如:上海自来水来自海上,bob等等. 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc, ...
- javascript实现:在N个字符串中找出最长的公子串
'use strict' module.exports = function 找出最长公子串 (...strings) { let setsOfSubstrings = [] strings.redu ...
- FCC JS基础算法题(3):Find the Longest Word in a String (找出最长单词)
题目描述: 在句子中找出最长的单词,并返回它的长度.函数的返回值应该是一个数字. 基本思路,将字符串转换成数组,然后得出数组中单个元素的长度,对长度进行排序,返回最大的一个 代码: function ...
- js比较两个String字符串找出不同,并将不同处高亮显示
根据java代码改写成js,下边js文件代码: function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.a ...
- hdu 1595 find the longest of the shortest【最短路枚举删边求删除每条边后的最短路,并从这些最短路中找出最长的那条】
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others) Memory Limit: 32768/32768 ...
- java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。
/*从键盘输入学生成绩,找出最高分,并输出学生成绩等级:成绩 >=最高分-10 等级为A成绩 >=最高分-20 等级为B成绩 >=最高分-30 等级为C其余为 等级为D 提示:先输入 ...
- pojg2744找一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是y的子串,或者x中的字符反序之后得到的新字符串是y的子串。
http://poj.grids.cn/practice/2744 描述现在有一些由英文字符组成的大小写敏感的字符串,你的任务是找到一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是 ...
随机推荐
- 解决电脑性能一般,打开webstorm后,电脑比较卡的问题
刚到一公司实习,要求使用webstrom开发前端,但安装后发现自己的电脑很卡,特别是在运行项目时,卡的不要不要的. 后来,发现一奇淫技巧,用sublime代替webstrom,但是没法启动项目啊 找到 ...
- 怎样打开.jar格式文件,怎样运行.jar格式文件
当时第一次看到.jar文件不知道是什么鬼,以为是压缩包,直接就解压了,但是并没有什么用.所以在下为大家详细介绍如何打开.jar文件以及如何运行.jar文件.什么是.jar文件,简单的说就是java压缩 ...
- POJ 1961 Period 还是next数组的含义、
题意:求所给串的前缀(包括原串)中有多少循环串(子串长度至少要是周期的两倍) 思路:还是next数组的应用问题.如果不懂next数组的话 http://www.cnblogs.com/sasuke-/ ...
- 2019-1-16-git-subtree-pull-错误-Working-tree-has-modifications
title author date CreateTime categories git subtree pull 错误 Working tree has modifications lindexi 2 ...
- C++的价值
In May 2010, the GCC steering committee decided to allow use of a C++ compiler to compile GCC. The c ...
- 设置html各元素不可点击(持续更新)
1.span <span id="nextStep" onclick="right">下一页</span> $("#nextS ...
- Codeforces Beta Round #4 (Div. 2 Only) D. Mysterious Present(LIS)
传送门 题意: 现在我们有 n 个信封,然后我们有一张卡片,并且我们知道这张卡片的长和宽. 现给出这 n 个信封的长和宽,我们想形成一个链,这条链的长度就是这条链中所含有的信封的数量: 但是需要满足① ...
- Git用在公司项目上的操作
修改代码后再次提交 搭档优化好他自己的代码后,我想在vscode上看看他优化后的结果 此时直接git pull origin就可以看到了 j接下来的一些指令,慢慢了解... 分支本身已经在我上面 以下 ...
- Cortex-A9 Timing
在Cortex-A9的文档<Cortex-A9 NEON Media Processing Engine>Technical Reference Manual中有关于Instruction ...
- SSL/TLS 配置
Quick Start 下列说明将使用变量名 $CATALINA_BASE 来表示多数相对路径所基于的基本目录.如果没有为 Tomcat 多个实例设置 CATALINA_BASE 目录,则 $CATA ...