华为OJ
whu_sky
每天都要有所收获才会觉得不是虚度光阴
展开
-
华为OJ:字母大小写判断
import java.util.Scanner;public class bigLetterCount { public static int CalcCapital(String str){ int count=0; for(int i=0;i<str.length();i++){ if('A'<=str.charAt(i)&&str.charAt(i)<='Z')count原创 2014-07-22 15:11:06 · 1065 阅读 · 0 评论 -
华为OJ:2192 邮箱地址合法性校验
注意输入的字符串里面可能有空格,所以要nextLine()而不是next(),其他一个个验证就好了,@要计算次数,多了少了都不行。import java.util.Scanner;public class eMailchecked { public static void main(String args[]){ Scanner input=new Scanner(System.in)原创 2014-07-09 12:01:08 · 2573 阅读 · 2 评论 -
华为OJ:汽水瓶
题目有点像小学数学题,因为三个空瓶可以换一瓶汽水,但喝完一瓶汽水就可以得到一个空瓶。所以相当于两个空瓶就可以换到一瓶汽水。把输入除以2即可。这里讲一下java多出入,可以用in.hasNext(),就相当于C/C++里面的while(scanf("%d",n)!=EOF)。import java.util.Scanner;public class qishuiping { public原创 2014-08-04 17:34:48 · 1766 阅读 · 0 评论 -
华为OJ:2199 判断输入字符串中的括号匹配
根据不同的括号有个计数器,在遍历时,当计数器小于0则返回false或者当遍历完后,计数器仍旧不为零,也返回false。import java.util.Scanner;public class bracketsMatch { public static void main(String args[]){ Scanner input=new Scanner(System.in); S原创 2014-07-10 00:43:05 · 2080 阅读 · 0 评论 -
华为OJ:查找输入整数二进制中1的个数
不得不说这道题就是一道十分蛋疼的题,我本来想着对输入的整数K对1按位与运算,然后再将K向右移一位,循环这样做,知道K为0。万万没想到,程序一直超时,莫名其妙,看讨论上说是因为这编译器高位补零,还能不能再坑一点。import java.util.Scanner;public class binarySystemOneNumber { public static int findN原创 2014-07-09 00:03:35 · 1336 阅读 · 0 评论 -
华为OJ:计算字符个数
因为区分大小写,所以要用toUpperCase()和toLowerCase()两个函数同时与charAt得到的字符比较。import java.util.Scanner;public class countCharNumber { public static void main(String args[]){ Scanner input=new Scanner(System.in);原创 2014-07-08 23:55:49 · 1667 阅读 · 0 评论 -
华为OJ:计算两个自然时间相加
按要求一步步做就好import java.util.Scanner;public class dateAdd { public static void main(String args[]){ Scanner input=new Scanner(System.in); String s1=input.next(); String s2=input.next(); int s原创 2014-07-10 13:11:30 · 1120 阅读 · 0 评论 -
华为OJ: 求小球落地5次后所经历的路程和第5次反弹的高度
学过自由落体就好,初中物理题。import java.util.Scanner;public class reboundFiveTimes { public static void main(String args[]){ Scanner input=new Scanner(System.in); int k=input.nextInt(); double high=k/32.原创 2014-08-01 15:01:51 · 1384 阅读 · 0 评论 -
华为OJ:DNA序列
初始化两个数组,一个序列数值数组K[N],一个序列和数组SUM[N],先遍历一边序列,为C或者G则K[i]为1,否则则置为0,然后计算连续M个K[I]之和存入SUM就行。import java.util.Scanner;public class DNAsquence { public static void main(String args[]){ Scanner input=new原创 2014-08-01 14:51:45 · 1344 阅读 · 0 评论 -
华为OJ: 公共字串计算
有几个需要注意的地方,一个这道题是不区分大小写的,所以在计算之前对输入的字符串要做小写或者大写的转换。第二个,思路一定要清晰,先将s1从[i]处开始与s2的[j]开始匹配,不相等则j++直到j等于s2.length()-1,相等,则i++,j++。注意,这里就是i++,即下次重新开始从s[i]开始匹配时,两次i之间的距离可能会超过1。再j那里设置一个计数器计数即可。import java.原创 2014-07-09 01:11:57 · 1847 阅读 · 0 评论 -
华为OJ:2041 放苹果
这道题难点不在于代码怎么写,而是思路怎么想。感觉一般这种题要么你理好一个思路要么你最后总结出一个公式,要么你自己模拟它的运作方式,用迭代,或者递归的方式来做。有点像我们以前学的排列组合。对于m个苹果,n个盘子f(m,n),如果苹果个数比盘子少,那么就跟n个盘子,n个苹果是一样的f(n,n)。如果m比n大,那么有两种情况,一种有空盘子的情况,一种没有空盘子的情况,两种情况不重叠且加一起一定为情况原创 2014-07-09 12:28:20 · 1344 阅读 · 0 评论 -
华为OJ:找出字符串中第一个只出现一次的字符
可以稍微让代码写的好看,不用直接写双循环的话,就可以写成函数的调用,重用性也很高。import java.util.Scanner;public class findOnlyOnceChar { public static boolean FindChar(String pInputString, char pChar){ int count=0; for(int i=0;i<pI原创 2014-07-09 00:05:59 · 23583 阅读 · 0 评论 -
华为OJ:统计大写字母个数
这道题我错了一次,主要是A跟Z边界没有考虑,其他的就是记得测试时用nextLine,因为字符串可能可能有空格。import java.util.Scanner;public class bigLetterCount { public static int CalcCapital(String str){ int count=0; for(int i=0;i<str.length()原创 2014-07-08 23:59:31 · 1446 阅读 · 0 评论 -
华为OJ:2290 字符串最后一个单词的长度
用JAVA就很简单,只要用spilt函数,再输出最后一个字符串。题意是要求你先自己写分隔好字符串这样子。有个比较坑的地方就是测试用例应该有个全为空的,要注意。import java.util.Scanner;public class Main { public static void main(String args[]){ Scanner input=new Scanner(原创 2014-07-08 01:03:13 · 1332 阅读 · 0 评论 -
华为OJ:字符串反转
很简单,逆向输出就好了。import java.util.Scanner;public class convertString { public static void main(String args[]){ Scanner input=new Scanner(System.in); String s=input.nextLine(); StringBuffer l=new Str原创 2014-07-08 23:50:10 · 1827 阅读 · 0 评论 -
华为OJ:数字颠倒
将数字转成一个字符串就行了。import java.util.Scanner;public class convertNumber { public static void main(String args[]){ Scanner input=new Scanner(System.in); int k=input.nextInt(); String s=String.value原创 2014-07-08 23:52:19 · 1326 阅读 · 0 评论 -
华为OJ:分段排序
题目有点绕,一个是要二分,用三个字符串,存前,中,后三个,前,后部分都降序排序,然后后半部分再反转一下,讲三部分合起来就好了。import java.util.Scanner;public class dividesort { public static void sort(StringBuffer s){ for(int i=0;i<s.length();i++){ for(i原创 2014-08-04 17:40:06 · 1157 阅读 · 0 评论