JAVA基础算法——将字符串按照字典倒序排序并输出

2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】 1.题目描述 请对组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则 1、长度不同时,长度较短在排前面 2、长度相同时,按照字典顺序排列(AaBb-Zz, 0-9顺序),即大写字母在小写字母前,数字排在字母后,要求时间复杂度为O(nlogn)。 比如: abc Abc 123 1bc CBD abed a 排序后结果为: a 1 Abc abc CBD 1bc 123 ... 阅读详情

JAVA基础算法——将字符串按照字典倒序输出

作者:飞不高的鱼
转载请注明出处

import java.util.Arrays;
import java.util.Comparator;
/**
 * 将已知的乱序字符串按照字典倒序排序输出
 * 
 * @author xiaobing
 * 
 */
public class ReverseDemo {

    static String s = "1o3p56w89amcdejghi";

    public static void main(String[] args) {
        reverse1();
        reverse2();
        reverse3();
        reverse4();
    }

    /**
     * 使用StringBuffer
     * 先排序,然后直接调用reverse()
     */
    private static void reverse1() {
        String st = sort(s);
        System.out.println(new StringBuffer(st).reverse().toString());
    }

    /**
     * 使用StringBuilder
     * 同StringBuffer,效率优于StringBuffer
     */
    private static void reverse2() {
        System.out.println(new StringBuilder(sort(s)).reverse().toString());
    }

    /**
     * 使用for循环遍历
     */
    private static void reverse3() {
        String s3 = sort(s);
        for (int i = s3.length() - 1; i >= 0; i--) {
            System.out.print(s3.charAt(i));
        }
        System.out.println();
    }

    /**
     * Arrays.sort(T[],自定义Comparator)
     * 先转成String[],然后对数组进行排序,最后遍历输出
     */
    private static void reverse4() {
        String[] ss = s.split("");
        String[] ss2 = Arrays.copyOfRange(ss, 1, ss.length);
        Arrays.sort(ss2, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                int i1 = o1.charAt(0);
                int i2 = o2.charAt(0);
                if (i1 > i2)
                    return -1;
                if (i1 < i2)
                    return 1;
                return 0;
            }
        });
        for (String string : ss2) {
            System.out.print(string);
        }
    }

    /**
     * 将字符串按照字典顺序排序
     * @param s
     * @return
     */
    private static String sort(String s) {
        char[] chs = s.toCharArray();
        Arrays.sort(chs);
        return String.valueOf(chs);
    }
}

输出结果:
wpomjihgedca986531
wpomjihgedca986531
wpomjihgedca986531
wpomjihgedca986531

蓝桥试题 历届试题 字串排序 蓝桥试题 历届试题 字串排序问题描述一、问题分析?二、代码1.引入库总结 问题描述 小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。 在冒泡排序中,每次只能交换相邻的两个元素。 小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。 例如,对于字符串 lan 排序,只需要 次交换。对于字符串 qiao 排序,总共需要 次交换。 小蓝的幸运数字是 ,他想找到一个只包含小写英文字母的字符串,对这个串中的字符进行冒泡排序,正好需要 阅读详情

相关推荐

剑指offer(十五):字典序全排列

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 分析 字典序算法解析: 最小字典序是数组从小到大的排序,最大字典序是最小字典序的倒序。 找到下一个字典序的步骤如下: 1)定义一个指针指向数组的最后一个数,从右向左找到第一个小于自己的右侧相邻元素的元素ai,以ai...

m16041902的博客 459

【Java】字典排序

1.字典排序定义 字典排序是一种对于随机变量形成序列的排序方法,其方法是按照字母排列顺序,或数字顺序由小到大形成的的序列。 2.代码实现 import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.*; public class 字典排序1 { public stati...

weixin_44084434的博客 1万+

java输入字符串按字典序输出

输入任意字符串,排序后输出。用于课程设计什么的。简单小程序!谢谢

JAVA:字符串的字典排序

题目:给定n个字符串,对n个字符串按照字典排序。思路:可以将字符串读入ArrayList中,然后重写Collection中sort方法的compare函数。因为本题是String类型,也可以直接调用Collection.sort(list)来达到这个目的。import java.util.*; public class Main { public static void main(Str...

HxxxxxxU的博客 4万+

一分钟理解 AP(Affinity Propagation) 亲和⼒传播算法

这篇博客发出来后,我用 Rust 复现代码出现问题。为此,我对对照了 sklearn 的相关代码,反复比较了两天,发现一处 bug,把 += 误写成了 =,导致数据量大的时候完全无法聚类。这个debug过程让我仔细梳理的 AP 算法的计算过程,今天我对这篇博客做了大规模修改,以便能原样展现原论文思想。

程序猿视角 3218

VSCode玩转Arduino:手把手解决‘未定义Serial’和头文件找不到的坑

本文详细介绍了在VSCode中配置Arduino开发环境时遇到的‘未定义Serial’和头文件找不到问题的解决方案。通过修改c_cpp_properties.json文件、调整IntelliSense引擎设置以及添加正确的库路径,开发者可以高效解决这些常见错误,提升开发体验。文章还提供了针对不同开发板和平台的高级配置技巧,确保配置的长期有效性。

weixin_42620202的博客 356

Java字符串数组字典序排序

Java字典序排序1. String[] 字符串数组1) 正序排序2)逆序排序2. String 字符串3. int[] 整数数组 1. String[] 字符串数组 1) 正序排序 public String[] sortA(String[] strings){ Arrays.sort(strings, (o1,o2) -> (o1 + o2).compareTo((o2 + o1))); return strings; } 2)逆序排序 public St

slj821的博客 6731

3种六轴IMU姿态解算算法对比:互补滤波、Mahony与卡尔曼滤波性能实测

本文深入对比了三种六轴IMU姿态解算算法:互补滤波、Mahony与卡尔曼滤波的性能表现。通过实测数据分析了各算法在精度、计算复杂度和适用场景上的差异,为无人机、机器人等运动控制系统提供了选型建议。重点探讨了六轴陀螺仪与加速度传感器的数据融合技术,帮助开发者根据项目需求选择最优解算方案。

weixin_29054245的博客 334

java 实现字典序排序

题目描述 给定n个字符串,请对n个字符串按照字典序排列。 输入描述: 输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。 输出描述: 数据输出n行,输出结果为按照字典序排列的字符串。 示例1 输入 9 cap to cat card two too up boat boot 输出 boat b...

早点变成刘强东就好 1万+

SRCNN超分辨率Pytorch实现,代码逐行讲解,附源码

超分辨率,就是把低分辨率(LR, Low Resolution)图片放大为高分辨率(HR, High Resolution)的过程。通过CNN将图像Y 的特征提取出来存到向量中。用一层的CNN以及ReLU去将图像Y 变成一堆堆向量,即feature map。把提取到的特征进一步做非线性映射,加大网络深度,提高网络复杂性。结合了前面得到的补丁来产生最终的高分辨率图像。实验步骤。

weixin_52261094的博客 3万+

自动驾驶仿真 (三)—— 基于PreScan与Simulink的AEB系统仿真

自动驾驶仿真三—— 基于PreScan&Simulink的AEB系统仿真1. AEB自动紧急制动系统1. 1 TTC碰撞时间模型1. 2 C-NCAP法规部分术语与定义1. 3 主动安全ADAS系统试验项目2. AEB仿真分析建模2.1 搭建场景2.2 传感器建模2.3 添加AEB控制系统3. 典型工况仿真3.1 CCRs仿真测试3.1 CCRm仿真测试4. 参考学习的书目教材 博主前面的博文已经介绍了Prescan&Simulink基本的场景建模及仿真分析流程,《自动驾驶仿真 (二)——

zhudj08的博客 1万+

编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。

编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。 package yang.base; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import ja...

cnheasy 2万+

微电网模型Matlab Simulink,风光储微电网,永磁风机并网仿真,光伏并网仿真,蓄电池仿真

通过探究风光储微电网、永磁风机并网仿真、光伏并网仿真、蓄电池仿真、柴油发电机以及光储微电网和风储微电网等方面的技术,我们可以更好地理解微电网的工作原理和优化方法,从而为微电网的发展做出更大的贡献。微电网模型Matlab Simulink,风光储微电网,永磁风机并网仿真,光伏并网仿真,蓄电池仿真,柴油发电机,光储微电网 风储微电网 Matlab仿真平台搭建的风光储微电网模型,风光柴储微电网,pwm控制,风力发电,光伏发电,微电网并网离网切换,并网孤岛切换,功能强大。永磁风机的并网仿真是一个非常重要的环节。

sjbextz的博客 399

java字典顺序

------- android培训、java培训、期待与您交流! ---------- 一、字典顺序 1、正统概念: 对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字的排列 12354和12345,排列12345在前,排列12354在后。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 5432

u013470176的专栏 3946

【unity实战】Unity手搓脚本工具实现合并网格功能

本文介绍了在Unity中优化网格性能的方法,通过合并重复网格减少绘制调用。主要使用Mesh.CombineMeshes方法实现网格合并,支持统一材质和多材质处理。核心内容包括:1)基础合并脚本实现,将子网格合并到父对象并禁用原网格;2)统一材质设置,支持自定义或默认材质;3)多材质合并方案,通过设置mergeSubMeshes=false保留子网格材质索引。文章还提供了完整代码示例和操作演示,适用于实际项目中的网格优化需求。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 556

财务惊呼“不可能”!Python 自动识别 PDF 发票,数据秒级录入系统

电子发票(原生 PDF):这种最爽,文字是可以选中的。我们用 PyPDF2 直接提取文本,速度快,准确率 100%。 纸质扫描/拍照发票:这种是图片。必须上 OCR(光学字符识别)。我们要用百度开源的 PaddleOCR,这是目前中文识别效果最好的开源库之一,吊打早已过气的 Tesseract。

BUG猿的博客 1023

《剑指Offer》Java刷题 NO.27 字符串的排列(全排列、去重、字典序)

《剑指Offer》Java刷题 NO.26 二叉搜索树与双向链表(中序遍历、递归、栈) 传送门:《剑指Offer刷题总目录》 时间:2020-03-30 题目: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),...

qq_39618369的博客 463

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

字符串变换最小字符串--Java

字符串变换最小字符,21天挑战赛

qq_44813449的博客 956

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【蓝桥杯2020Java】排序。详解

【问题描述】 小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交换相邻的两个元素。 小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。 例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,总共需要 4 次交换。 小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 100 次交换,可是他忘了吧这个字符串记下来,现在找不到了。 请帮助小蓝找一个只包含小写英文字母且没有字母重复出.

VanGotoBilibili的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

字符串排序显示问题(面试题)

今天去一家公司面试,机试做了一道关于字符串的题,做的不是很理想,下来又研究了一下:   题目要求: 1、给定一个字符串,只对其中的英文字符进行排序显示 2、排序显示的规则是:根据英文字符出现的次数多的在前面显示,如果出现次数相同按字典顺序显示   代码示例: package net.oschina.tkj.teststring; import java.util.Array...

u013777494的博客 373

java 排序方法详解_关于排序方法的详细介绍

这篇文章主要通过实例介绍了Java中常用的7种排序方法,需要的朋友可以参考下直接插入排序import java.util.HashMap;public class InsertSort {private static int contrastCount = 0;//对比次数private static int swapCount = 0;//交换次数public static void main(...

weixin_32238157的博客 217

剑指Offer(28)-字符串的全排列

题目: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 方法一:递归算法: 我们将字符串看成两部分组成,第一部分为它的第一个字符,第二部分为后面所有的字符。首先求所有可能出现再第一个位置的...

Fly_Fly_Zhang的博客 721

MapReduce应用案例2:简单数据排序

1.需求描述 针对简单数据的排序需求并不复杂,大数据量文本中每行只存在一个数值,要求按照数值大小输出,且为数值标记行数。本案例对理解MR的原理深有帮助。 输入 12 58 1283 45 9 ... 输出 1 9 2 12 3 45 4 58 5 1283 ... 2.实现思路 MapReduce的Reduce阶段会按照key-velue对中的key进行排序,如果key为封装int...

机器熊的技术大杂烩 708

Java常用类中的方法运用练习题

1、给定一个字符串数组{“nba”,“abc”,“cba”,“zz”,“qq”,“haha”},请按照字典顺序进行从小到大的排序。 2、请统计"nba"在字符串"nbaernbatynbauinbaopnba"中出现的次数 3、已知字符串:”this is a test of java”. 按要求执行以下操作: (1) 统计该字符串中字母s出现的次数 (2) 取出子字符串”test” (3) 将本...

qq_42250531的博客 753
下一篇: 安卓在Service中弹出Dialog
飞不高的鱼
博客等级 码龄18年 4粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值