字符串排序(算法初阶、快速排序)、只出现一次的数字 II(位运算、数组)、生成随机字符串(图算法、算法高阶)
        【摘要】  字符串排序(算法初阶、快速排序)用main方法排序(按首字母或按字符串长度) 要求:①输出原数组和排序后的数组②若有“,”“.”不能进行排序,并将不符合排序要求的数组打印出来③不能用API,可用选择、冒泡、快速解答:import java.util.Scanner;class Untitled {   public static void main(String[] args) {    ...
    
    
    
    字符串排序(算法初阶、快速排序)
用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;
  }
}
 
 本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位大佬指出。
保持热爱,奔赴下一场山海。🏃🏃🏃
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)