HuaWeiJava 上机
1 /*
2 * 第二题,输入字符串长度,字符串,计数m。从前往后计数,当数到m个元素时,m个元素出列,同时将该元素赋值给m,
3 * 然后从下一个数计数循环,直到所有数字都出列,给定的数全部为大于0的数字。输出出队队列。
4 * 例如: 输入:len=4 str="3,1,2,4" m=7
5 * 输出:2,3,1,4
6 */
7 public static String getOutString(int len, String str, int m) {
8 String[] ss = str.split(",");
9 ArrayList<Integer> arrayInt = new ArrayList<Integer>();
10 Stack<Integer> stackInt = new Stack<Integer>();
11 String s = "";
12
13 for(int i = 0; i < ss.length; i++){
14 arrayInt.add(Integer.parseInt(ss[i]));
15 }
16
17 while(arrayInt.size() != 0){
18
19
20 int n = m % arrayInt.size();//第n个数,在arrayInt 中是第 n - 1 个数
21 if(n == 0) {
22 n = arrayInt.size();
23 }
24 m = arrayInt.get(n - 1);
25 //arrayInt.remove(n - 1);
26 //arrayInt 中 第n个数开始
27 for(int i = n - 2; i >= 0; i--){
28 stackInt.push(arrayInt.get(i));
29 }
30 for(int i = arrayInt.size() - 1; i > n -1; i--){
31 stackInt.push(arrayInt.get(i));
32 }
33 System.out.println(arrayInt.remove(n - 1) +"");
34 for(int i = 0; i < arrayInt.size(); i++){
35 arrayInt.set(i, stackInt.pop());
36 }
37 }
38 return s;
39 }
1 import java.util.ArrayList;
2 import java.util.List;
3
4
5 public class HuaWeiTest {
6
7 public static void main(String[] args) {
8 int len=4;
9 String str="3,1,2,4";
10 int m=7;
11 HuaWeiTest hwt = new HuaWeiTest();
12 System.out.println(hwt.getOutString(len, str, m));
13 }
14 public String getOutString(int len, String str, int m) {
15 String ret ="";
16 String[] arr = str.split(",");
17 List<String> ls = new ArrayList<String>();
18 for(int i=0;i<len;i++) {
19 ls.add(arr[i]);
20 }
21 for(int i=0;i<len;i++) {
22 int temp = (m-1)%ls.size();
23 ret += ls.get(temp);
24 m = Integer.parseInt(ls.get(temp))+temp;
25 ls.remove(temp);
26 }
27 return ret;
28 }
29 }
1 package com.huawei.test;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Stack;
6 /**
7 * 第三题,输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。
8 * 例如: 输入:3+8×2/9-2
9 * 输出:2
10 *
11 * @author Administrator
12 *
13 */
14
15 public class HuaWeiTest {
16
17 public static void main(String[] args) {
18
19 System.out.println(getMyRet("3+8/2*2"));
20 }
21
22 public static int getMyRet(String str) {
23 String expression = str.trim();
24 Stack<Integer> operandStack = new Stack<Integer>();
25 Stack<Character> operatorStack = new Stack<Character>();
26
27 for(int i = 0; i < expression.length(); i++){
28 char ch = expression.charAt(i);
29 if(ch == '+' || ch == '-' ){//
30 while(!operatorStack.isEmpty() && (operatorStack.peek() == '+'
31 || operatorStack.peek() == '-'
32 || operatorStack.peek() == '*'
33 || operatorStack.peek() == '/')){
34 processAnOperator(operandStack, operatorStack);
35 }
36 operatorStack.push(ch);
37 }
38 else if (ch == '*' || ch == '/'){
39 while(!operatorStack.isEmpty() && (
40 operatorStack.peek() == '*' || operatorStack.peek() == '/')){
41 processAnOperator(operandStack, operatorStack);
42 }
43 operatorStack.push(ch);
44 }
45 else{
46 operandStack.push(ch - '0');
47 }
48 }
49 while(!operatorStack.isEmpty()){
50 processAnOperator(operandStack, operatorStack);
51 }
52 return operandStack.pop();
53 }
54 public static void processAnOperator(Stack<Integer> operandStack, Stack<Character> operatorStack){
55 char op = operatorStack.pop();
56 int op1 = operandStack.pop();
57 int op2 = operandStack.pop();
58 switch (op) {
59 case '+':
60 operandStack.push(op1 + op2);
61 break;
62 case '-':
63 operandStack.push(op2 - op1);
64 break;
65 case '*':
66 operandStack.push(op1 * op2);
67 break;
68 case '/':
69 operandStack.push(op2 / op1);
70 break;
71 default:
72 break;
73 }
74 }
75 }
HuaWeiJava 上机的更多相关文章
- flhs笔试题-回家上机实践
这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入: package org.flhs; import com.google.commo ...
- Java连接SQLServer2008终极解决办法(亲身上机演练版)
今天我一学妹问我,Java连接SQLServer2008数据库的问题,一直无法连接成功.想起自己刚开始学习的时候,在网上找各种文章,然后实际上机验证操作,花了一两天时间才搞定,一把辛酸泪呀!记得当时是 ...
- 《Java语言程序设计》上机实验
实验一 Java环境演练 [目的] ①安装并配置Java运行开发环境: ②掌握开发Java应用程序的3个步骤:编写源文件.编译源文件和运行应用程序: ③学习同时编译多个Java源文件. [内容 ...
- ztong上机3
二.实验名称:数字图像处理matlab上机 三.实验学时:2学时 四.实验目的:(详细填写) 掌握几何变换 掌握插值 理解配准的概念 五.实验内容 (1)首先自己写一个对图像进行旋转和缩放的复合变换程 ...
- C++ 第一次上机作业
今天完成了C++第一次上机作业,感觉比较简单. 题目: 求2个数或3个正整数中的最大数,用带有默认参数的函数实现. 对3个变量按由小到大顺序排序,要求使用变量的引用. 编写一个程序,用同一个函数名对几 ...
- Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)
Twin Prime Conjecture Time Limit: 2000/1000 MS (Java/Othe ...
- 代C语言上机实践
这已经是开学第十二周了,个人感觉严老师教的这批学生效果不是很好,有的竟然毫不知道main函数前边的 int是做什么的.只知按照书本上给的样例程序一个字一个字的敲到编译器中,然后点击运行.有错误也不知道 ...
- lingo运筹学上机实验指导
<运筹学上机实验指导>分为两个部分,第一部分12学时,是与运筹学理论课上机同步配套的4个实验(线性规划.灵敏度分析.运输问题与指派问题.最短路问题和背包问题)的Excel.LONGO和LI ...
- JSP脚本元素上机手册
L3 <JSP基础>上机手册 内容回顾 脚本元素<%! %> <%= %> <% %> 注释元素 JSP指令元素 JSP动作元素 上机目标 掌握脚本元素 ...
随机推荐
- Kubernetes全栈架构师(基本概念)--学习笔记
目录 为什么要用Kubernetes? K8s控制节点-Master概念 K8s计算节点-Node概念 什么是Pod? 为什么要引入Pod? 创建一个Pod 零宕机发布应用必备知识:Pod三种探针 零 ...
- 【动画消消乐】HTML+CSS 自定义加载动画:怦然心跳 066
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- 解决 centerOS7部署ajango2.2.x版本 报SQLite 3.8.3 or later is required (found 3.7.17).错误
在CentOS7上部署Django的时候,遇到了一些问题,写篇笔记记录解决过程. 报错信息 当python3 manage.py runserver启动django项目的时候,就会出现报错信息如下: ...
- POJ3264线段树求最值
刚开始还觉得有点怪怪的.因为想着如果每个树只是单纯地记录它所在的区间的话会不会有不在区间内的数据给更新了,但是我好像是傻掉了因为如果有这种情况出现的话在父亲节点就会分成l,mid和mid+1,r两个区 ...
- 字符串匹配算法(二)-BM算法详解
我们在字符串匹配算法(一)学习了BF算法和RK算法,那有没更加高效的字符串匹配算法呢.我们今天就来聊一聊BM算法. BM算法 我们把模式串和主串的匹配过程,可以看做是固定主串,然后模式串不断在往后滑动 ...
- 一文说清OpenCL框架
背景 Read the fucking official documents! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: 对不 ...
- nacos Failed to obtain JDBC Connection 连接异常
在conf/目录下,将application.properties.example 改名为bootstrap.properties 将连接数据库信息添加到末尾 # db mysql spring.da ...
- C#曲线分析平台的制作(五,Sqldependency+Signalr+windows 服务 学习资料总结)
在前篇博客中,利用interval()函数,进行ajax轮询初步的实现的对数据的实时显示.但是在工业级别实时显示中,这并非是一种最好的解决方案.随着Html5 websocket的发展,这种全双工的通 ...
- java封装基础详解
java封装基础详解 java的封装性即是信息隐藏,把对象的属性和行为结合成一个相同的独立单体,并尽可能地隐藏对象的内部细节. 封装的特性是对属性来讲的. 封装的目标就是要实现软件部件的"高 ...
- 「GM_脚本」获取 GitHub 项目文件的 jsDelivr CDN 地址「好像没啥用系列」
基本信息: name:「 GitHub 」获取文件的 jsDelivr 地址 desc:获取项目文件的 CDN 地址 url: https://github.com/wdssmq/userscript ...