Anagrams问题

Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
输入格式:输入有两行,分别为两个单词。
输出格式:输出只有一个字母Y或N,分别表示Yes和No

思路:可以利用map存储每个字符和其出现的次数。然后比较两个map的内容。
细节注意:大小写是无关的,所以我们可以先将字符串转化成小写的。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scn=new Scanner(System.in);String s1=scn.next();String s2=scn.next();if(s1.length()==s1.length()){Map<Character,Integer> map1=new HashMap<Character,Integer>();Map<Character,Integer> map2=new HashMap<Character,Integer>();s1=s1.toLowerCase();s2=s2.toLowerCase();for (int i = 0; i < s1.length(); i++) {if(map1.containsKey(s1.charAt(i))){Integer in=map1.get(s1.charAt(i));in=in+1;}else {map1.put(s1.charAt(i), 1);}if(map2.containsKey(s2.charAt(i))){Integer inn=map2.get(s2.charAt(i));inn=inn+1;}else {map2.put(s2.charAt(i), 1);}       }if(map1.equals(map2))System.out.println("Y");elseSystem.out.println("N");}else {System.out.println("N");}}}

前缀表达式

编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。
输入格式为:“运算符 对象1 对象2”。
运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。
要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。
输入格式:输入只有一行,即一个前缀表达式字符串。
输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。

思路: 这道题不难,主要记住如何在字符串中获取数字。
可以利用Character.isDigit()判断是不是数字。
另外,由于它的输入是有空格隔开的,所以获取字符串时不能使用scn.next(),而是要使用scn.nextLine().

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scn = new Scanner(System.in);String s = scn.nextLine();//会在输入enter的时候停止。而scn.next()会在输入空格的时候停止。int num1 = Integer.parseInt(s.substring(2, 3));int num2 = 0;for (int i = 3; i < s.length(); i++) {while (Character.isDigit(s.charAt(i))) {num1 = num1 * 10 + Integer.parseInt(s.substring(i, i + 1));i++;}i++;num2 = Integer.parseInt(s.substring(i, i + 1));i++;while (i < s.length() && Character.isDigit(s.charAt(i))) {num2 = num2 * 10 + Integer.parseInt(s.substring(i, i + 1));i++;}}if (s.charAt(0) == '+')System.out.println(num1 + num2);else if (s.charAt(0) == '-')System.out.println(num1 - num2);else if (s.charAt(0) == '*')System.out.println(num1 * num2);else if (s.charAt(0) == '/')System.out.println(num1 / num2);}
}

另外一种方法:在比赛中观察输入和输出格式的特点很重要!

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scn=new Scanner(System.in);char c=scn.next().charAt(0);int a,b,sum;a=scn.nextInt();b=scn.nextInt();if(c=='+')System.out.println(a+b);else if(c=='-')System.out.println(a-b);else if(c=='*')System.out.println(a*b);else if(c=='/')System.out.println(a/b);}

大小写转换

编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
  输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
  输出格式:输出经过转换后的字符串。

思路:


用字符串S1用于存储原字符串S大写的结果。
用字符串S2用于存储原字符串S小写的结果。
用字符串res用于存储结果。
遍历s中每个字符,如果s中字符和s1中的字符相同,则说明s中的字符是大写的,那么我们把它改成小写的,即把s2中该处的字符添加到res中。

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scn=new Scanner(System.in);String s=scn.next();String s1=s.toUpperCase();String s2=s.toLowerCase();String res="";for (int i = 0; i < s.length(); i++) {if(s.substring(i, i+1).equals(s1.substring(i, i+1)))res+=s2.substring(i, i+1);elseres+=s1.substring(i, i+1);}System.out.println(res);}
}

蓝桥杯算法训练(java)--Anagrams问题前缀表达式大小写转换相关推荐

  1. 蓝桥杯算法训练 礼物(java,个人想法,递归找临界点)

    蓝桥杯算法训练 礼物(java,个人想法,递归找临界点) 问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友. 在走出了怪物森林以后,JiaoSho ...

  2. 蓝桥杯算法训练-强力党逗志芃

    持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀 题目 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个技能都有一个前提技能,只有学完了前提技能才能学习当前 ...

  3. 蓝桥杯算法训练-过河马

    蓝桥杯算法训练题解有兴趣的可以支持下. 题目 问题描述 在那个过河卒逃过了马的控制以超级超级多的走法走到了终点之后,这匹马表示它不开心了-- 于是,终于有一天,它也过河了! 由于过河马积累了许多的怨念 ...

  4. 蓝桥杯——算法训练——进击的青蛙

    问题描述 青蛙X正准备跳过一座桥,这座桥被划分为N段,记青蛙所在的起始点为0,桥的末端为N.桥上的一些点有一些石子,这些点是无法跳上去的.青蛙每次跳跃能向前跳跃+1,+2,+3段,现在请你算出跳到末端 ...

  5. 蓝桥杯 算法训练 幸运的店家

    蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...

  6. 蓝桥杯 算法训练 Beaver's Calculator

    蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...

  7. 蓝桥杯 算法训练 印章

    蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...

  8. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  9. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

最新文章

  1. 公开课 | 人脸识别的最新进展以及工业级大规模人脸识别实践探讨
  2. NRF51 BOOTLOADER 编译注意事项
  3. C#修改系统环境变量,调用批处理bat
  4. Win11系统显示你的账户已被停用怎么办
  5. LeetCode--81. 搜索旋转排序数组Ⅱ(遍历法,二分法)
  6. 使用过的MySql查询语句[待续...]
  7. rsync+inotify 文件同步
  8. PH国家表单下拉错位问题
  9. nginx打开网页报错
  10. 大数据杀熟已被明令禁止!
  11. hexo之icarus主题的美化修改以及简单的SEO配置
  12. JQuery Ajax使用FormData对象上传文件 图片
  13. 自动钉木箱机器人_一种全自动木箱钉装机的制作方法
  14. 顺序表的基本操作(详细、全面)
  15. Axure制作微信APP原型(三):消息+个人模块----聊天、浮窗、登录设备、个人主页、更多信息
  16. 背光源中LED的散热问题
  17. 阿里云标准型s6实例规格性能及应用场景
  18. 【财务_会计1_3】会计基本假设与会计基础
  19. Cocos游戏带你告别光棍节:欢迎对号入座、修成正果!
  20. react样式的私有化方法

热门文章

  1. 大专程序员--专升本
  2. mysql常用查询语句
  3. python附加篇setup打包篇
  4. 转发: 杜拉拉升职记--读后感 (作者:lucia )
  5. 读书|《新品类》读后感想
  6. 鲁大师 性能测试 计算机重启,电脑老自动重启,特别是鲁大师温度压力测试一开就自动重启是为什么?...
  7. A Blockchain-based Decentralized Federated Learning Framework wth Committee Consensus
  8. maven编译时出现There are test failures
  9. 阿里21道经典软件测试面试题,你会几题?
  10. ~Unit crond.service not found~(ubunt )