当前位置 : 主页 > 编程语言 > java >

字符串排序(算法初阶、快速排序)、只出现一次的数字 II(位运算、数组)、生成随机字符串(图算法、算法高阶)

来源:互联网 收集:自由互联 发布时间:2023-03-22
字符串排序(算法初阶、快速排序) 用main方法排序(按首字母或按字符串长度) 要求:①输出原数组和排序后的数组②若有“,”“.”不能进行排序,并将不符合排序要求的数组打印出

字符串排序(算法初阶、快速排序)

用main方法排序(按首字母或按字符串长度) 要求: ①输出原数组和排序后的数组 ②若有“,”“.”不能进行排序,并将不符合排序要求的数组打印出来 ③不能用API,可用选择、冒泡、快速

解答:

import java.util.Scanner; class Untitled { public static void main(String[] args) { int num; System.out.println("请输入数组元素长度:"); Scanner in = new Scanner(System.in); num = in.nextInt(); System.out.println("请输入字符串:"); String str[] = new String[num]; for (int count = 0; count < num; count++) { str[count] = in.next(); } in.close(); System.out.println("before sorting:"); int c = 0; for (int i = 0; i < num; i++) { if (str[i].contains(",") || str[i].contains(".")) c++; System.out.println(str[i]); } for (int i = 0; i < num - 1; i++) { int min = i; for (int j = i + 1; j < num; j++) { if (str[min].contains(",") || str[min].contains(".")) min = j; else if (str[j].compareTo(str[min]) < 0 && !str[j].contains(",") && !str[j].contains(".")) min = j; } if (min != i) { String t = str[i]; str[i] = str[min]; str[min] = t; } } System.out.println("after sorting:"); for (int i = 0; i < num - c; i++) System.out.println(str[i]); System.out.println("invalid items:"); for (int i = num - c; i < num; i++) System.out.println(str[i]); } }

只出现一次的数字 II(位运算、数组)

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 **三次 。**请你找出并返回那个只出现了一次的元素。

示例 1: 输入:nums = [2,2,3,2] 输出:3 示例 2: 输入:nums = [0,1,0,1,0,1,99] 输出:99

提示:

  • 1 <= nums.length <= 3 * 104
  • -231 <= nums[i] <= 231 - 1
  • nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次

**进阶:**你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

解答:

class Solution { public int singleNumber(int[] nums) { int ret = 0; for (int i = 0; i < 32; ++i) { int bitnums = 0; int bit = 1 << i; for (int num : nums) { if ((num & bit) != 0) bitnums++; } if (bitnums % 3 != 0) ret |= bit; } return ret; } }

生成随机字符串(图算法、算法高阶)

生成一个由大写字母和数字组成的6位随机字符串,并且字符串不重复。

class java_384519 { public static char[] generate() { char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; boolean[] flags = new boolean[letters.length]; char[] chs = new char[6]; for (int i = 0; i < chs.length; i++) { int index; do { index = (int) (Math.random() * (letters.length)); } while (flags[index]); chs[i] = letters[index]; flags[index] = true; } return chs; } }

本文内容到此结束了, 如有收获欢迎点赞

上一篇:IntelliJ IDEA的优势及安装教程
下一篇:没有了
网友评论