您的位置:首页 > 其它

字符串和整数(使用链表的解决方法)

2020-04-05 18:19 337 查看
字符串和整数(使用链表的解决方法)

对一字符串,以‘-’分隔,编程输出所有的整数中去掉最大值、最小值后剩下的整数的个数。注意:最大值与最小值可能有多个!

样例输入:3,3,5,3,6,9,7,9

样例输出: 3

 

该题的解题思路:首先,要先把字符串转换为String数组,然后可利用链表ArrayList将数组中每一个数添加至链表中,然后利用for循环比较大小,

将最大值与最小值找出来,再用remove方法去除与最大值最小值相同的数。

其中有很重要的一点,在利用remove方法去除最大值与最小值时,因为是在遍历的同时删除数据,所以ArrayList的总长也会发生变化,所以此时可以利用for循环倒序删除。

解题:

 

import java.util.ArrayList;

public class Demo1 {

public static void main(String[] args) {
String num = "3,3,5,3,6,9,7,9";
method(num);

}

public static void method(String str){
String[] strs = str.split(",");
ArrayList<Integer> arr = new ArrayList<Integer>();

for(int i = 0; i < strs.length; i++){    //将数据添加至链表
arr.add(Integer.parseInt(strs[i]));
}

int max = arr.get(0);
for(int i = 0; i < arr.size(); i++){    //计算出最大值
if(max < arr.get(i)){
max = arr.get(i);
}
}

int min = arr.get(0);
for(int i = 0; i < arr.size(); i++){    //计算出最小值
if(min > arr.get(i)){
min = arr.get(i);
}
}

for(int i = arr.size()-1; i >= 0; i--){        //将最大值与最小值从链表中去掉,该处倒序删除为重点.
if(arr.get(i) == max || arr.get(i) == min){
arr.remove(arr.get(i));
}
}

System.out.println("剩余的个数为:" + arr.size());
}

}

在解题时,一开始想要通过数组解决,但在转换为string数组之后在比较max和min时出现了无法比较问题,现在已了解什么情况,还有ArrayList应用不熟练,要多联系.

posted on 2017-12-07 20:08 沈汉学 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/shenhx666/p/8000218.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
diaoxiexi3244 发布了0 篇原创文章 · 获赞 0 · 访问量 144 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐