蓝桥杯经典算法题Java----确定字符串是否包含唯一字符

确定字符串是否包含唯一字符

题目描述

实现一个算法来识别一个字符串的字符是否是唯一的(忽略字母大小写)。

若唯一,则输出YES,否则输出NO

输入描述

输入一行字符串,长度不超过 100。

输出描述

输出一行,若字符串的字符是唯一的,则输出YES,否则输出NO

输入输出样例

示例

输入

abd25+

输出

YES

import java.util.Scanner;

// 1:无需package

// 2: 类名必须Main, 不可修改

public class Main {

    public static void main(String[] args) {

       Scanner scan = new Scanner(System.in);

       String[] a = scan.nextLine().split("");/将输入的字符串分割好方便一一对比

       boolean f = true;

       ok:

       for(int i = 0;i < a.length; i++) {

            for(int j = i+1; j < a.length; j++) {

                 if(a[i].equalsIgnoreCase(a[j])) {//不区分大小写

                    f = false;

                    break ok;

                   }

               }

         }

         if(f){

            System.out.print("YES");

           }else{

             System.out.print("NO");

           }

          scan.close();

  }

}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴为您解答关于蓝桥杯Java B组的真解析。 蓝桥杯是全国性的计算机比赛,分为省级和国家级两个层次,Java B组是其中的一种比赛类型。以下是Java B组历年真的解析: 2019年Java B组真: 1. 目描述:给定一个长度为n的整数序列和一个整数k,判断该序列中是否存在两个元素之和为k。 解思路:使用哈希表存储每个元素出现的次数,并遍历序列中的每个元素,查找是否存在与之匹配的元素。 2. 目描述:给定一个字符串S和一个正整数k,将S分割成若干个长度为k的子串,并将每个子串进行反转,最后将所有子串拼接起来。例如,当S为"abcdefg",k为2时,输出结果为"bacdfeg". 解思路:使用StringBuilder类进行字符串拼接,并将每个子串进行反转。 3. 目描述:给定一个n*m的矩阵,矩阵中的每个元素均为非负整数。定义从左上角到右下角的一条路径为矩阵中从第一行第一列到最后一行最后一列的一条路径,路径上的元素组成一个序列。求这样的路径中,元素总和最小的路径。 解思路:使用动态规划算法,从左上角开始,依次计算每个位置到左上角的最小路径和。 2018年Java B组真: 1. 目描述:给定一个长度为n的整数序列,请找出其中的最长上升子序列,要求时间复杂度为O(nlogn)。 解思路:使用二分查找和动态规划算法,维护一个长度为i的上升子序列中最小的末尾数,时间复杂度为O(nlogn)。 2. 目描述:给定一个字符串S和一个非负整数k,将S分割成若干个长度为k的子串,并将每个子串中的字符按照字典序排序,最后将所有子串拼接起来。例如,当S为"abcdefg",k为2时,输出结果为"abcedfg". 解思路:使用StringBuilder类进行字符串拼接,并将每个子串中的字符进行排序。 3. 目描述:给定一个n*m的矩阵,矩阵中的每个元素均为非负整数。定义从左上角到右下角的一条路径为矩阵中从第一行第一列到最后一行最后一列的一条路径,路径上的元素组成一个序列。求这样的路径中,元素总和最小的路径。 解思路:同2019年Java B组真的第三。 希望以上解析可以帮助您更好地理解蓝桥杯Java B组的目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值