华为机试2
来源:互联网 发布:c语言中预处理命令 编辑:程序博客网 时间:2024/06/04 19:04
http://blog.csdn.net/xcbeyond/article/details/45627247
http://blog.csdn.net/gycool21/article/details/52679521
22---字符串分割
链接:https://www.nowcoder.com/questionTerminal/fa2e02625a8541beb2309fcb7ab31e5b来源:牛客网/* * 连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组, 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 首先输入一个整数,为要输入的字符串个数。 例如: 输入:2 abc 12345789 输出:abc00000 12345678 90000000 * */ /* * 关键思路:对字符串长度去余并分析两种情况,利用StringBuilder的appen()方法添0 * */ import java.util.Scanner; public class StringSplit { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ int n = Integer.parseInt(in.nextLine()); for(int i = 0 ; i < n ; i++){ String str = in.nextLine(); strSplit(str); } } } private static void strSplit(String str) { if(str == null){ return; } int a = str.length() % 8; StringBuilder sb = new StringBuilder(str); if(a != 0){ for(int i = 8-a ; i > 0 ; i--){ sb.append('0'); } } str = sb.toString(); for(int i = 0 ; i < str.length() ; i+=8){ System.out.println(sb.substring(i, i+8)); } } }
23--字符逆序
链接:https://www.nowcoder.com/questionTerminal/cc57022cb4194697ac30bcb566aeb47b
来源:牛客网
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。
输入参数:
inputString:输入的字符串
返回值:
输出转换好的逆序字符串
输入描述:
输入一个字符串,可以有空格
输出描述:
输出逆序的字符串
输入
I am a student
输出
tneduts a ma I
import java.util.Scanner;import java.util.Stack;//有意思public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ String str = scan.nextLine(); Stack sta = new Stack(); for(char ch:str.toCharArray()){ sta.push(ch); } while(!sta.empty()){ System.out.print(sta.pop()); } } }}
24--求最小公倍数
链接:https://www.nowcoder.com/questionTerminal/22948c2cad484e0291350abad86136c3
来源:牛客网
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
输入
5 7
输出
35
链接:https://www.nowcoder.com/questionTerminal/22948c2cad484e0291350abad86136c3来源:牛客网import java.util.*;//两数最小公倍数等于两数乘积除以两数的最大公约数public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int A=sc.nextInt(); int B=sc.nextInt(); int result=A*B; result=result/getYinShu(A,B); System.out.println(result); } } public static int getYinShu(int m,int n){ int i=m; while((m%i!=0)||(n%i!=0)){ i--; } return i; } }
25----在字符串中找出连续最长的数字串
链接:https://www.nowcoder.com/questionTerminal/2c81f88ecd5a4cc395b5308a99afbbec
来源:牛客网
输入描述:
输入一个字符串。
输出描述:
输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度
输入
abcd12345ed125ss123058789
输出
123058789,9
import java.util.*;public class Main{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()) { String str1=""; String str=scan.nextLine(); for(char ch:str.toCharArray()){ //将不是数字的字符全部变成a if(ch>='0' && ch<='9'){ str1+=ch; }else{ str1+="a"; } } //按a分割 String[] strs=str1.split("a"); int max=0;//记录最长的连续数字串的长度 for(int i=0;i<strs.length;i++){ max=strs[i].length()>max?strs[i].length():max; } for(int i=0;i<strs.length;i++){ if(strs[i].length()==max) System.out.print(strs[i]); } System.out.println(","+max); } }}
26----字符串去掉重复的字符
描述:
运行时间限制
内存限制:
滤除输入字符串中的重复出现的字符,只保留第一个
10 Sec
无限制
输入:字符串,长度小于1000输出:字符串
样例输入:12222aab2样例输出:12ab
import java.util.LinkedHashSet;import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); String text = input.nextLine(); System.out.print(filter(text)); input.close(); } public static String filter(String s){ String result = ""; LinkedHashSet<String> temp = new LinkedHashSet<String>(); int len = s.length(); if(len<1000) { for(int i=0;i<s.length();i++){ temp.add(""+s.charAt(i)); } for(String ch :temp){ result += ch; } }else result = "The string is too long!!!"; return result; }
27---输入字符串,提取字符串串中大写字母,注意字符串中可能含有空格等其他字符。
package huawei; import java.util.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); String string = cin.nextLine(); System.out.println(FindUpper(string)); } public static String FindUpper(String str) { String out = ""; char[] charArray = str.toCharArray(); for (int i = 0; i < charArray.length; i++) { if (charArray[i] <= 90 && charArray[i] >= 65) { out = out + charArray[i]; } } return out; } }
28---回文数字判断。
题目描述:
有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。
要求实现方法:
public String isPalindrome(String strIn);
【输入】strIn: 整数,以字符串表示;
【返回】true: 是回文数字;
false: 不是回文数字;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
package com.xcbeyond; import java.util.Scanner; /** * @author xcbeyond * 2015-5-10下午03:46:56 *4、回文数字判断。 *题目描述: * 有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为: * 回文数字。编写一个函数,判断某数字是否是回文数字。 */ public class IsPalindrome { public static void main(String[] args) { System.out.print("请输入一个回文数字:"); Scanner console = new Scanner(System.in); String numStr = console.nextLine(); if(isPalindrome(numStr)) { System.out.println(numStr+"是回文数字!"); }else{ System.out.println(numStr+"不是回文数字!"); } } public static boolean isPalindrome(String str){ boolean result = false; for(int i = 0 ;i<str.length()/2-1;i++) { if(str.charAt(i) == str.charAt(str.length()-1-i)) { result = true; } } return result; } }
29--- 计算整数各个数位之和
描述: 要求使用递归实现,计算整数各个数位之和。
举例: 123 --> 1+2+3 = 6
运行时间限制: 无限制
内存限制: 无限制
输入: 0xff ff ff ff以内的整数
输出: NA
样例输入: 123
样例输出: 6
package com.xcbeyond; /** * * @author xcbeyond * @date 2015/05/12 15:23:16 */ public class Demo36 { public static void main(String[] args) { int num = 123; System.out.println(bitSum(num)); } public static int bitSum(int num) { int res = 0; if(num<10) { res = num; }else { res = num%10 + bitSum(num/10); } return res; } }
30---数列求和
编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。
1+1/2!+ .... +1/n!
输出保留5位小数。
下面是一些合理的表达式的例子:
Input 5
Output 1.71667
package com.xcbeyond; public class Demo35 { public static void main(String[] args) { System.out.println(resutl(5)); } public static double resutl(int n) { double res = 0.0; int i = 1; while(i<=n) { res += (double)1.0/fack(i); i++; } return res; } public static int fack(int k) { int result = 0; if(k == 1) { result = 1; }else { result = fack(k-1)*k; } return result; } }
- 华为机试2
- 华为机试2
- 华为机试2
- 9-2华为机试
- 华为机试整理2
- 华为机试练习2
- 华为机试 题目2 - 字符串过滤
- 华为机试-整数化成2进制数
- 华为机试
- 华为机试
- 华为机试
- 华为机试
- 华为机试4
- 华为机试
- 华为机试
- 华为机试-2014
- 华为机试
- 华为机试2014
- 解决Linux无法用ssh进行连接
- 67 个拯救前端开发者的工具、库和资源
- JAVA设计模式---装饰模式
- CSS3基础
- A+B
- 华为机试2
- HMAC与数字签名学习记录
- python编程中的几个问题
- Flask-SQLAlchemy创建模型与表的映射
- SwitchButton平滑按钮的实现
- 复习之HTML(1)
- 2017.9.9 图论 — 最小生成树
- SQL Server2005 异常处理机制(Begin try Begin Catch)
- Java-Java I/O 字节流之BufferedReader/BufferedWriter