Lc_面試題0101判定字元是否唯一 --位運算解法
阿新 • • 發佈:2021-06-17
package com.example.leetcode; /** * @description: 面試題 01.01. 判定字元是否唯一 * 實現一個演算法,確定一個字串 s 的所有字元是否全都不同。 * <p> * 示例 1: * <p> * 輸入: s = "leetcode" * 輸出: false * 示例 2: * <p> * 輸入: s = "abc" * 輸出: true * 限制: * <p> * 0 <= len(s) <= 100 * 如果你不使用額外的資料結構,會很加分。 * @author: licm * @create: 2021-06-17 09:46 **/ public class Lc_面試題0101判定字元是否唯一 { /** * 位運算 * mark = 0 * mark & 1<<astr - 'a' ==0 * markl|= 1<<astr - 'a' * * 假定只有小寫字母 * @param astr * @return */ public static boolean isUnique(String astr) { int mark = 0; for (int i = 0; i < astr.length(); i++) { int c = astr.charAt(i)-'a'; if((mark & 1<<c) != 0){ return false; } mark |= 1<<c; } return true; } public static void main(String[] args) { // String s = "leetcode"; // String s = "abc"; String s = "aa"; System.out.println(isUnique(s)); } }