1. 程式人生 > >華為機試-設計一個定時器管理系統

華為機試-設計一個定時器管理系統

設計一個定時器管理系統,可以動態啟動、停止定時器,並能根據已失去的時長自動調整剩餘的時間。
執行時間限制:1Sec
記憶體限制:無限制
輸入:啟動定時器:starttimmer: ID, time
舉例:
starttimmer: 1, 1000
啟動一個定時器,其ID為1,定時時長time為1000ms
注:定時器ID用例保證非負整數,定時時長一定為正整數
停止定時器:stoptimmer: ID
舉例:
stoptimmer: 1
停止一個ID為1的定時器
注:定時器ID用例保證非負整數,如果停止的定時器ID不存在,則忽略。
逝去時長:elapse: time
舉例:
elapse: 1000
時間逝去1000ms
注:用例保證時長一定為正整數
輸入結束
end
輸出:
按啟動順序輸出還沒有停止的定時器,如ID為1的定時器還有1000ms才結束
timer: 1, 1000
如果所有定時器都停止了,輸出none
none

樣例輸入:
starttimer: 1, 1000
starttimer: 2, 2000
elapse: 1000
end
樣例輸出:timer: 2,1000

import java.util.HashMap;
import java.util.Scanner;
import java.util.Iterator;
public class test{
    public static void main(String []args) {
        Scanner inputScanner = new Scanner(System.in);
        HashMap<Integer, Integer> hashMap = new
HashMap<Integer, Integer>(); while(inputScanner.hasNext()){ String str = inputScanner.nextLine(); String[] arr = str.split(":"); if("end".equals(arr[0])){ if(hashMap.isEmpty()){ System.out.print("none"); } else
{ Iterator it = hashMap.keySet().iterator(); while(it.hasNext()){ int key = (Integer)it.next(); int value = hashMap.get(key); if(value>0){ System.out.print("timer:"+key+","+value); } } } System.exit(0); } String[] ch = arr[1].split(","); if("starttimer".equals(arr[0])){ hashMap.put(Integer.valueOf(ch[0]), Integer.valueOf(ch[1])); } else if("stoptimer".equals(arr[0])){ hashMap.remove(arr[1]); } else{ Iterator it = hashMap.keySet().iterator(); while(it.hasNext()){ int key = (Integer)it.next(); int value = hashMap.get(key)-Integer.valueOf(arr[1]); hashMap.put(key, value); } } } } }

相關推薦

-設計一個定時管理系統

設計一個定時器管理系統,可以動態啟動、停止定時器,並能根據已失去的時長自動調整剩餘的時間。 執行時間限制:1Sec 記憶體限制:無限制 輸入:啟動定時器:starttimmer: ID, time

查詢組成一個偶數最接近的兩個素數/(C/C++)

題目描述 任意一個偶數(大於2)都可以由2個素陣列成,組成偶數的2個素數有很多種情況,本題目要求輸出組成指定偶數的兩個素數差值最小的素數對 輸入描述: 輸入一個偶數 輸出描述: 輸出兩個素數

一個關於動態規劃的

題目記得不太清了,大概意思是:一個數組,都是正整數,最多連續取兩個,求如何取取得的數相加和最大。 這是一個比較基礎的動態規劃問題,可以按照常規的狀態遞推思路。 開闢陣列data[3][n], 令data[0][n] 表示陣列arr中第n個數不選,data[1][n]表示

[練習題]2.大數求和

cout views 華為上機 大數 高位到低位 pretty 類別 ade iostream 題目二[大數求和] 描寫敘述: 給定兩個非常大的正整數A和B。位數在50至100之間。求C=A+B; 題目類別: 字符串 難度: 中級

2014(一)

ack cpp string.h ont const 機試題 輸出字符串 abcd 函數 2014華為機試(一)/****************************************************************************

-字符串匹配

輸入 scanner i++ -m 實現 ret 字符 als num 題目描述 題目標題: 判斷短字符串中的所有字符是否在長字符串中全部出現 詳細描述: 接口說明 原型: boolIsAllCharExist(char* pShortString,char* pLo

-密碼強度等級

java程序 strong while oid ont || ascii wds tro 題目描述 密碼按如下規則進行計分,並根據不同的得分為密碼進行安全等級劃分。 一、密碼長度: 5 分: 小於等於4 個字符 10 分: 5 到

[練習題]56.求子數組的最大和

== process ack turn 多個 popu 基礎 ace ava 題目 描寫敘述: 輸入一個整形數組。數組中連續的一個或多個整數組成一個子數組,每一個子數組都有一個和。求全部子數組的和的最大值。 接口 Int GetSub

—變形的楊輝三角形

mar ios alt mark word http processor string tex 變形的楊輝三角形 每一個數是上行,左右3個數之和,不存在為0,求第n行第一個偶數出現的位置,沒有輸出-1。 #include<iostrea

】找最高分(通過此題熟悉牛客網Node輸入輸出)

length 輸出 ons ken [0 接下來 lin tput int 來源:牛客網 老師想知道從某某同學當中,分數最高的是多少,現在請你編程模擬老師的詢問。當然,老師有時候需要更新某位同學的成績. 輸入描述: 輸入包括多組測試數據。每組輸入第一行是兩個正整數N和M(0

:字串的連接最長路徑查找

too 小寫 while arrays 空間 i++ har cap over 這個題更應該叫做字符串字典序排序 題目描述 給定n個字符串,請對n個字符串按照字典序排列。 輸入描述: 輸入第一行為一個正整數n(1≤n≤1000),下面n行為n個字符串

:汽水瓶

方法 new code imp subject tint 表示 next quest 題目描述 有這樣一道智力題:“某商店規定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?”答案是5瓶,方法如下:先用9個空

】—— 6.質數因子

string ner out system pre 分享 args 機試 分享圖片 題目 解法 import java.util.Scanner; public class Main { public static void main(Strin

練習

ace tor 排序 技術分享 length a-z string it! 計算 1. 計算字符個數 輸入 ABCDEF A 輸出 1 #include <iostream> #include <cstring> using n

提取不重復的整數

des back 重復 mes 提取 push_back pan i++ -h 題目描述 輸入一個int型整數,按照從右向左的閱讀順序,返回一個不含重復數字的新的整數。 輸入描述: 輸入一個int型整數 輸出描述: 按照從右向左的閱讀順序,返回一個不含重復數字的新的整

牛客網 - 線上程式設計 - - 合併表記錄

題目描述 資料表記錄包含表索引和數值,請對錶索引相同的記錄進行合併,即將相同索引的數值進行求和運算,輸出按照key值升序進行輸出。 輸入描述: 先輸入鍵值對的個數 然後輸入成對的index和value值,以空格隔開 輸出描述: 輸出合併後的鍵值對(多

牛客網 - 線上程式設計 - - 字串字典順序排序

題目描述 給定n個字串,請對n個字串按照字典序排列。 輸入描述: 輸入第一行為一個正整數n(1≤n≤1000),下面n行為n個字串(字串長度≤100),字串中只含有大小寫字母。 輸出描述: 資料輸出n行,輸出結果為按照字典序排列的字串。 示例1

牛客網 - 線上程式設計 - - 刪除字串中出現次數最少的字元

題目描述 實現刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。 輸入描述: 字串只包含小寫英文字母, 不考慮非法輸入,輸入的字串長度小於等於20個位元組。 輸出描述: 刪除字串中出現

牛客網 - 線上程式設計 - - 單詞倒排

題目描述 對字串中的所有單詞進行倒排。 說明: 1、每個單詞是以26個大寫或小寫英文字母構成; 2、非構成單詞的字元均視為單詞間隔符; 3、要求倒排後的單詞間隔符以一個空格表示;如果原字串中相鄰單詞間有多個間隔符時,倒排轉換後也只允許出現一個空格間隔符; 4、每個單詞最

牛客網 - 線上程式設計 - - 字串處理

題目描述 按照指定規則對輸入的字串進行處理。 詳細描述: 將輸入的兩個字串合併。 對合並後的字串進行排序,要求為:下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。 對排序後的字串進行操作,如果字元為‘0’——‘9’或者‘A’——‘F’