华为OJ平台——首次不重复字符

题目描述:

输入一个字符串,输出字符串中第一个没有重复的字符,若没有满足条件的字符存在,则输出“.”

思路:

这题很简单,直接逐次比较就好了,但是没有考虑到更好效率的方法,以后想到的话再加上来

 1 import java.util.Scanner;
 2
 3 /**
 4  * 输入一个字符串,输出字符串中第一个没有重复的字符
 5  * 若没有满足条件的字符存在,则输出“.”
 6  *
 7  */
 8 public class FirstAppearance {
 9
10     public static void main(String[] args) {
11         //输入,读取输入字符串
12         Scanner cin = new Scanner(System.in) ;
13         String str = cin.nextLine() ;
14         cin.close();
15
16         int len = str.length();
17
18         char temp ;
19         boolean flag ;
20         //双重查找比较即可判断是都有重复
21         for(int i = 0 ; i < len ; i++){
22             temp = str.charAt(i) ;
23             //flag标志位,表示是否是不重复的,true--不重复,直接输出,false---重复下一个
24             flag = true ;
25             for(int j = 0 ; j < len ; j++){
26                 //如果重复,flag置false,跳出当前循环,进行字符串的下一个字符的判断
27                 if(temp == str.charAt(j) && i != j){
28                     flag = false ;
29                     break ;
30                 }
31             }
32             if(flag){
33                 System.out.println(temp) ;
34                 return ;
35             }
36         }
37         //若所有的比较结果都没有不重复的字符,则输出"."
38         System.out.println(".") ;
39     }
40
41 }
时间: 2024-07-29 18:50:46

华为OJ平台——首次不重复字符的相关文章

华为OJ测试题目——删除重复字符

题目标题: 删除重复字符 给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串.需要保证字符出现的先后顺序,并且区分大小写. 详细描述: 接口说明 原型: int GetResult(const char *input, char *output) 输入参数: input     输入的字符串 输出参数(需考虑指针指向的内存区域是否有效): output    输出的字符串 返回值: 0         成功 -1        失败及异常 举例: 输入: a

华为OJ平台——字符串分隔

题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输出 输出到长度为8,的新字符串数组样例输入 abc 123456789样例输出 abc00000 12345678 90000000 思路: 都是直接处理,没有具体的方法而言 注意点: 华为的OJ平台的输入输出有点坑,好多次的程序都在这里出问题,在Eclipse上运行的结果没问题,然后在OJ上就是编

华为OJ平台——矩阵乘法

题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 输入: 1.第一个矩阵的行数 2.第一个矩阵的列数(也是第二个矩阵的行数) 3.第二个矩阵的列数 4.第一个矩阵的值 5.第二个矩阵的值 输出: 输出两个矩阵相乘的结果 样例输入 2 2 2 3 8 8 0 9 0 18 9 样例输出 171 72 72 0 思路: 题目意思很简单,只是实现两个矩阵乘法功能,要注意的一点是输出的格式. OJ平台中对输出的格式非常严格,经过多次尝试,验证此

华为OJ平台试题 ——字符串:输出数组中重复的数组

<pre name="code" class="cpp">/* * 题目:输出数组中重复出现的数组(0-9) * * 输入:输入一串数字,中间以逗号隔开,如3,2,2,3,5,6,7,8,9 * 输出:输出数组中重复出现的数字(数字间以空格隔开),输出顺序按原数组中的先后顺序,输出3,2 */ #include<stdio.h> #include<string.h> #define N 256 /* * 定义一个结构体:数字和数字

华为OJ平台——(基础篇)字符统计

题目要求:对字符中的各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 .如果有其他字符,则对这些字符不用进行统计.如果统计的个数相同,则按照ASII码由小到大排序输出 .如果有其他字符,则对这些字符不用进行统计.实现以下接口: 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用).按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出清空目前的统计结果,重新统计

华为OJ平台——字符串通配符

题目描述: 在计算机中,通配符一种特殊语法,广泛应用于文件搜索.数据库.正则表达式等领域.现要求各位实现字符串通配符的算法.要求:实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写.下同)(不包含. , 等特殊字符) ?:匹配1个字符 输入 通配符表达式: 一组字符串. 输出 返回匹配的结果,正确输出true,错误输出false 思路: 分三种情况: (1)无通配符的情况:对应的字符要完全相等,否则匹配失败,输出false (2)通配符为?的情况:对应的

华为OJ平台——密码强度等级

题目描述: 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母 三.数字: 0 分: 没有数字  10 分: 1 个数字 20 分: 大于1 个数字 四.符号: 0 分: 没有符号 10 分: 1 个符号  25 分: 大于1 个符号 五.奖励: 2 分: 字母和数字 3 分: 字母.

华为OJ平台——整形数组合并

题目描述: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 输入: 输入说明,按下列顺序输入: 1 输入第一个数组的个数 2 输入第一个数组的数值 3 输入第二个数组的个数 4 输入第二个数组的数值 输出: 输出合并之后的数组 输入样例: 3 1 2 5 4 -1 0 3 2 输出样例: -101235 思路: 先将两个数组合并到一个中,然后对这个完整的数组进行排序,最后剔除重复的数据并输出 1 import java.util.Scanner; 2 3 public class Array

华为OJ平台试题 —— 字符串:名字的漂亮度

<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">1.名字的漂亮度</span> 代码: <pre name="code" class="cpp"> #include<stdio.h> /* * 对数组a 进行排序 */ voi