当前位置:网站首页>Roman numeral to integer
Roman numeral to integer
2022-07-05 22:43:00 【dying_ star】
Roman numerals contain the following seven characters : I, V, X, L,C,D and M.
character The number
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
for example , Rome digital 2 Write to do II , Two parallel 1 .12 Write to do XII , That is to say X + II . 27 Write to do XXVII, That is to say XX + V + II .
Usually , The small numbers in roman numbers are to the right of the big ones . But there are special cases , for example 4 Do not write IIII, It is IV. Numbers 1 In number 5 Left side , The number represented is equal to the large number 5 Decimal reduction 1 Value obtained 4 . similarly , Numbers 9 Expressed as IX. This special rule only applies to the following six cases :
I Can be placed in V (5) and X (10) Left side , To express 4 and 9.
X Can be placed in L (50) and C (100) Left side , To express 40 and 90.
C Can be placed in D (500) and M (1000) Left side , To express 400 and 900.
Given a Roman number , Convert it to an integer .
source : Power button (LeetCode)
link :https://leetcode-cn.com/problems/roman-to-integer
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
From selected reviews
The problem is very simple when you understand it . So let's set up a HashMap To map symbols and values , Then the string from left to right , If the value represented by the current character is not less than its right , Add this value ; Otherwise, subtract the value . And so on to the leftmost number , The final result is the answer
class Solution {
public int romanToInt(String s) {
HashMap<Character,Integer> hm=new HashMap<>();
int[] v={1,5,10,50,100,500,1000};
char[] k={'I','V','X','L','C','D','M'};
for(int j=0;j<7;j++){
hm.put(k[j],v[j]);
}
// Create a hashmap Realize the mapping between Roman numerals and integers
int flag=hm.get(s.charAt(0));//flag Point to the current number
int sum=0;// Define an accumulator
for(int i=1;i<s.length();i++){
char key=s.charAt(i);// Traverse the Roman string
int flagnext= hm.get(key);//flagnext Point to flag The next number , Through cyclic update
if(flag<flagnext){
sum-=flag;
}
else{
sum+=flag;}
flag=flagnext;// to update flag
}
sum+=flag;//flag At this point, it points to the last number , Not accumulated in the loop , Add here
return sum;
}
}边栏推荐
- d3dx9_ How to repair 31.dll_ d3dx9_ 31. Solution to missing DLL
- Win11 runs CMD to prompt the solution of "the requested operation needs to be promoted"
- How to create a thread
- 50. Pow(x, n). O(logN) Sol
- Distributed resource management and task scheduling framework yarn
- Post-90s tester: "after joining Ali, this time, I decided not to change jobs."
- 鏈錶之雙指針(快慢指針,先後指針,首尾指針)
- Nacos installation and service registration
- Global and Chinese markets of industrial pH meters 2022-2028: Research Report on technology, participants, trends, market size and share
- Double pointeur de liste liée (pointeur rapide et lent, pointeur séquentiel, pointeur de tête et de queue)
猜你喜欢

The countdown to the launch of metaverse ape is hot

鏈錶之雙指針(快慢指針,先後指針,首尾指針)

Depth first DFS and breadth first BFS -- traversing adjacency tables

a-tree 树的全部展开和收起

EasyCVR集群部署如何解决项目中的海量视频接入与大并发需求?

Practice: fabric user certificate revocation operation process

30 optimization skills about mysql, super practical

Technology cloud report: how many hurdles does the computing power network need to cross?

2022 Software Test Engineer salary increase strategy, how to reach 30K in three years

Search: Future Vision (moving sword)
随机推荐
Record several frequently asked questions (202207)
BFC block level formatting context
傅里叶分析概述
Sparse array [matrix]
Paddle Serving v0.9.0 重磅发布多机多卡分布式推理框架
Binary tree (II) -- code implementation of heap
FBO and RBO disappeared in webgpu
Google Maps case
点到直线的距离直线的交点及夹角
Cobaltstrike builds an intranet tunnel
Platform bus
Depth first DFS and breadth first BFS -- traversing adjacency tables
Practice: fabric user certificate revocation operation process
I closed the open source project alinesno cloud service
119. Pascal‘s Triangle II. Sol
Promql demo service
TCC of distributed solutions
How can easycvr cluster deployment solve the massive video access and concurrency requirements in the project?
Distributed resource management and task scheduling framework yarn
Paddy serving v0.9.0 heavy release multi machine multi card distributed reasoning framework