实现一个算法,确定一个字符串的所有字符是否全部不同。

下面给出3种可行方法,都经过测试。(其中方法一,刚开始理解有些困难,需要多思考一下)

package XiaoMi;import java.util.Arrays;public class test11 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubString str = "eabcadf";System.out.println(isUniqueChars(str));}/** // 方法一:位记录 public static boolean isUniqueChars(String str) { if* (str.length() > 26) return false;* * int checker = 0; for (int i = 0; i < str.length(); i++) { int val =* str.charAt(i) - 'a'; if (((checker & (1 << val)) > 0)) { return false; }* checker |= (1 << val); } return true; }*//*// 方法二:排序后比较邻近位public static boolean isUniqueChars(String str) {if (str.length() > 26)return false;// int checker = 0;char[] cha = new char[str.length()];for (int i = 0; i < str.length(); i++) {cha[i] = str.charAt(i);}Arrays.sort(cha); // 数组排序方法for (int i = 0; i < cha.length - 1; i++) {if (cha[i] == cha[i + 1]) {return false;}}return true;}*/// 方法三:数组记录public static boolean isUniqueChars(String str) {if (str.length() > 256)return false;boolean[] cha =new boolean[256];for (int i = 0; i < str.length(); i++) {int val =str.charAt(i);    //val值作为数组索引,数组内存放真值。if (cha[val]) {return false;}cha[val] =true;}return true;}
}

【小米笔试题】实现一个算法,确定一个字符串的所有字符是否全部不同相关推荐

  1. 回文指的是一个字符串从前面读和从后面读都一样,编写一个算法判断一个字符串是否为回文。

    回文指的是一个字符串从前面读和从后面读都一样,编写一个算法判断一个字符串是否为回文. 要求: 1)采用链栈实现算法: 2)从键盘输入一个字符串,输出判断结果. 算法思路: 根据栈的后进先出的特点,编写 ...

  2. 经典笔试题:用C写一个函数测试当前机器大小端模式

    "用C语言写一个函数测试当前机器的大小端模式"是一个经典的笔试题,如下使用两种方式进行解答: 1. 用union来测试机器的大小端 1 #include <stdio.h&g ...

  3. 「笔试题」最近做了一个招银网络科技Java岗位在线笔试题,给有需要的朋友了解学习一下!

    编程题一 大概意思是,给一段字符串,然后统计该字符串中相同字符个数,并以字符串+该字符串个数组合排列成新的字符串.如输入" sssdhibdhidhi " ,需要返回结果 &quo ...

  4. 【小米笔试题】二分查找算法的变形

    一个有序数组的元素经过循环移动,元素的顺序可能变为"3 4 5 6 7 1 2".怎样才能找出数组中最小的那个元素?假设数组中的元素各不相同. 方法一:(暴力遍历)时间复杂度o(n ...

  5. python笔试题奥特曼打怪兽_一个python面试笔试题

    init 和 new 的作用和返回值?详细描述一下类的创建过程?如何捕获类的属性定义顺序? __new__在创建实例对象的时候调用,返回实例对象的内存地址,传递给__init__方法,就是self的值 ...

  6. python笔试题-平衡点问题: 假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点。

    平衡点问题 假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点. 比如一个列表numbers = [1, 3, 5, 7, 8, 25, 4, 20].25前面的总和为24, ...

  7. 【小米笔试题】朋友圈问题-并查集解法

    2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r).如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共 ...

  8. 并查集——小米笔试题求朋友圈个数,分小组个数

    先给出小米的题: 已知有n个人和m对好友关系(存于数组r).如果两个人是直接或间接的好友(好友的好友的好友-),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈. 假如:n = 5 ...

  9. 小米笔试题 依据父子关系建树

    问题描述: 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度  输入描述:  输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n- ...

最新文章

  1. probit概率单位回归分析
  2. 使用 uiautomator2
  3. Windows7_x64下编译64位ffmpeg
  4. 修改linux swap空间的swappiness,降低对硬盘的缓存
  5. Markdown中数学公式练习(2)
  6. 2018中国C++大会精彩回顾
  7. 推荐一款高引超6000次的全基因组/全外显子组变异注释工具
  8. 数据库SQL语言类型(DQL.DML.DDL.DCL)
  9. 【Flink】RuntimeException: Row arity of from does not match serializers
  10. Swift 中函数使用指南
  11. java 线程 interrupted_Java:当被另一个线程中断时,如何在线程上捕获InterruptedException?...
  12. matlab实验 信号处理,数字信号处理MATLAB实现与实验
  13. 交换机在局域网内的日常工作
  14. php安装时候的源是什么,Windows安装源无效怎么办
  15. 利用Chrome翻译搞定大部分英文文件翻译的工作流
  16. 屏蔽CSDN博客广告的油猴脚本
  17. (转载)SoftIce的安装、配置以及一些基本操作
  18. vim 编辑时E45: ‘readonly‘ option is set (add ! to override)
  19. 简单实用计划提醒便签软件 界面简洁功能一目了然
  20. 渗透中超全的Google hack语法

热门文章

  1. DigSci科学数据挖掘大赛-亚军方案分享
  2. 个人作业1-数组(续1)
  3. 超燃开学演讲:不读书不吃苦,你要青春干嘛
  4. JDK1.8源码(二)——java.lang.Integer 类
  5. 验证Node和npm是否安装成功
  6. PowerDesigner概念模型详解
  7. https和server-status配置案例
  8. 认识软件框架的设计原则-- 变与不变分离,创造简美之序
  9. 去掉button按钮左右两边的留白
  10. SQL Server 2000从入门到精通3