首页 > 其他分享 >字符串处理

字符串处理

时间:2023-09-05 15:15:07浏览次数:29  
标签:处理 res sum ++ lists int 字符串 size

1. 数组拼接

坑比用例

3
2
2,5,6,7,,,9,5,7
1,7,4,3,,4
import java.util.Scanner;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
       Scanner in = new Scanner(System.in);
        int Len = Integer.parseInt(in.nextLine());
        int count = Integer.parseInt(in.nextLine());
        List<List<Integer>> lists = new ArrayList<>();
        List<Integer> res = new ArrayList<>();
        for (int i = 0; i < count; i++) {   //  堆每行进行
            String[] split = in.nextLine().split("[,]+");  //  处理多逗号的情况
            int tempLen = split.length; //  长度
            for (int j = 0; j < tempLen && j < Len; j++) {    //  收入结果中
                res.add(Integer.parseInt(split[j]));
            }
            ArrayList<Integer> temp = new ArrayList<>();
            for (int j = Len; j < split.length; j++) {
                temp.add(Integer.parseInt(split[j]));
            }
            if (temp.size() != 0){
                lists.add(temp);
            }
        }
        int sum = 0;
        for (List<Integer> list : lists) {
            if (list.size() != 0){
                sum++;
            }
        }
        getResult(sum, lists, res, Len);
        StringBuilder ans = new StringBuilder();
        for (Integer re : res) {
            ans.append(re + ",");
        }
        System.out.println(ans.substring(0, ans.length() - 1));
    }

    public static void getResult(int sum, List<List<Integer>> lists, List<Integer> res, int len){
        if (sum == 0){
            return;
        }
        for (int i = 0; i < lists.size(); i++) {
            List<Integer> list = lists.get(i);
            int size = list.size();
            if (size == 0){
                continue;
            }
            for (int j = 0; j < size && j < len; j++) {
                res.add(list.get(j));
            }
            if (size <= len){
                lists.set(i, new ArrayList<>());
                sum--;
            }else { //  比你要拿的长
                for (int j = 0; j < len; j++) {
                    list.remove(0);
                }
                lists.set(i, list);
            }
        }
        getResult(sum, lists, res, len);
    }
}

使用 subList 进行优化

import java.util.Scanner;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
       Scanner in = new Scanner(System.in);
        int Len = Integer.parseInt(in.nextLine());
        int count = Integer.parseInt(in.nextLine());
        List<List<Integer>> lists = new ArrayList<>();
        List<Integer> res = new ArrayList<>();
        for (int i = 0; i < count; i++) {   //  堆每行进行
            String[] split = in.nextLine().split("[,]+");
            int tempLen = split.length; //  长度
            for (int j = 0; j < tempLen && j < Len; j++) {    //  收入结果中
                res.add(Integer.parseInt(split[j]));
            }
            ArrayList<Integer> temp = new ArrayList<>();
            for (int j = Len; j < split.length; j++) {
                temp.add(Integer.parseInt(split[j]));
            }
            if (temp.size() != 0){
                lists.add(temp);
            }
        }
        int sum = 0;
        for (List<Integer> list : lists) {
            if (list.size() != 0){
                sum++;
            }
        }
        getResult(sum, lists, res, Len);
        StringBuilder ans = new StringBuilder();
        for (Integer re : res) {
            ans.append(re + ",");
        }
        System.out.println(ans.substring(0, ans.length() - 1));
    }

   public static void getResult(int sum, List<List<Integer>> lists, List<Integer> res, int len){
        if (sum == 0){
            return;
        }
        for (int i = 0; i < lists.size(); i++) {
            List<Integer> list = lists.get(i);
            int size = list.size();
            if (size == 0){
                continue;
            }
            for (int j = 0; j < size && j < len; j++) {
                res.add(list.get(j));
            }
            if (size <= len){
                list.clear();
                sum--;
            }else { //  比你要拿的长
                list.subList(0, len).clear();
                lists.set(i, list);
            }
        }
        getResult(sum, lists, res, len);
    }
}

标签:处理,res,sum,++,lists,int,字符串,size
From: https://www.cnblogs.com/aclq/p/17679668.html

相关文章

  • Linux恢复误删除的文件或者目录(处理二)
    Linux恢复误删除的文件或者目录对于误删文件还原可以分为两种情况:   1.一种是删除以后在进程存在删除信息   2.一种是删除以后进程都找不到,只有借助于工具还原。误删除文件进程还在的情况::一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID依旧......
  • 使用生成式 AI 增强亚马逊云科技智能文档处理
    数据分类、提取和分析对于处理大量文档的组织来说可能具有挑战性。传统的文档处理解决方案是手动的、昂贵的、容易出错的,并且难以扩展。利用 AmazonTextract 等AI服务,亚马逊云科技智能文档处理(IDP)允许您利用业界领先的机器学习(ML)技术来快速准确地处理任何扫描文档或图......
  • LeetCode -- 394. 字符串解码(栈处理字符串问题)
     我们用栈同时维护当前字符串和倍数以及要加倍的字符串当遇到"["时,我们保存当前字符串,即将当前字符cres串入栈;当遇到"]"时,res=cres+倍数*应加倍的字符串classSolution:defdecodeString(self,s:str)->str:stack,res,multi=[],"",0......
  • 医学影像(PACS)源码,影像的获取、处理、存储、调阅、检索、管理
    医学影像(PACS)系统主要进行病人信息和影像的获取、处理、存储、调阅、检索、管理,并通过网络向全院提供病人检查影像及诊断报告;各影像科室之间共享不同设备的病人检查影像及诊断报告;在诊断工作站上,调阅HIS中病人的其它信息(如:病人信息、病历信息、医嘱、检验信息等)。系统包括:1、预......
  • Linux文件查看和处理命令
    文件查看和处理命令touch:创建空文件和修改文件时间戳touch改变文件的atime和mtime(ctime会随之改变)-a改变atime-m改变mtimestat:查看文件的属性及元数据cat:显示文件的内容,适合看小文件n显示行号catm1m2>file(将文件m1和m2合并后放入文件file中)>输出重定向>覆盖之前文件内容......
  • js处理树形结构数据过滤
    最近项目经常遇到后台接口返回整个树形结构,而前端展示只需要展示部分类型的数据,需要过滤一下,所以整理了一个过滤方法。非层级结构时过滤非常简单,只需要一层代码就够了exportfunctionfilterTree(tree){returntree.filter(item=>item.type===0)}而要做到子节点也过滤......
  • 嵌入式DSP教学实验箱_数字信号处理教程:3-5 AAC音频编码实验
    1、实验目的本次实验操作教程是基于创龙教仪DSP教学实验箱:TL6748-PlusTEB演示录制的。本次实验的目的是了解AAC音频格式,掌握AAC音频编码的原理,并实现将WAV格式的音频编码为AAC格式。2、实验原理音频编解码的主要对象是音乐和语音,音频的编解码格式可分为无压缩的格式、无损压缩格式......
  • 【群答疑】jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为
    一个非常不错的问题,来检验下自己jmeter基本功 可能有同学没看懂题,这里再解释一下,上面问题需求是:jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为下一个请求的入参 建议先自己思考,如果2小时没做出来,可以参考文末评论区的实现思路(仅登录后可见) ......
  • java 将长字符串截取为指定位数短字符代码
    //原始长字符串strContextStringstrContext="长字符串................................";ArrayList<String>arrayList=newArrayList(5);inttotalNo=strContext.length();//小字符串长度pageSizeintpageSize=20;if(totalNo>pageSize){//取模等于0,说......
  • 数组对象处理
    constflatObject=Object.keys({...list}).reduce((result:any,key)=>{constinnerObj={...list}[key];Object.keys(innerObj).forEach((innerKey)=>{result[innerKey]=innerObj[innerKey];});......