欢迎光临散文网 会员登陆 & 注册

LeetCode 1694. Reformat Phone Number

2023-05-10 16:27 作者:您是打尖儿还是住店呢  | 我要投稿

You are given a phone number as a string numbernumber consists of digits, spaces ' ', and/or dashes '-'.

You would like to reformat the phone number in a certain manner. Firstly, remove all spaces and dashes. Then, group the digits from left to right into blocks of length 3 until there are 4 or fewer digits. The final digits are then grouped as follows:

  • 2 digits: A single block of length 2.

  • 3 digits: A single block of length 3.

  • 4 digits: Two blocks of length 2 each.

The blocks are then joined by dashes. Notice that the reformatting process should never produce any blocks of length 1 and produce at most two blocks of length 2.

Return the phone number after formatting.

 

Example 1:

Input: number = "1-23-45 6"

Output: "123-456"

Explanation:

The digits are "123456". 

Step 1: There are more than 4 digits, so group the next 3 digits. The 1st block is "123". 

Step 2: There are 3 digits remaining, so put them in a single block of length 3. The 2nd block is "456". Joining the blocks gives "123-456".

Example 2:

Input: number = "123 4-567"

Output: "123-45-67"

Explanation: The digits are "1234567". 

Step 1: There are more than 4 digits, so group the next 3 digits. The 1st block is "123". 

Step 2: There are 4 digits left, so split them into two blocks of length 2. The blocks are "45" and "67". Joining the blocks gives "123-45-67".

Example 3:

Input: number = "123 4-5678"

Output: "123-456-78"

Explanation: The digits are "12345678". 

Step 1: The 1st block is "123". 

Step 2: The 2nd block is "456". 

Step 3: There are 2 digits left, so put them in a single block of length 2.

The 3rd block is "78". Joining the blocks gives "123-456-78".

 

Constraints:

  • 2 <= number.length <= 100

  • number consists of digits and the characters '-' and ' '.

  • There are at least two digits in number.

先将数据收集不要其他的字符,其次就是依次去遍历字符串,每次要前3个数字,直到最后生效的数字<=4的时候,去判断,如果等于4个,截取2个字符+"-"+最后2个字符,如果其他的话,直接加上即可,

下面是代码,我一开始用index去遍历,结果老是 出错,也不知道是哪里出问题了。。。

Runtime: 6 ms, faster than 27.83% of Java online submissions for Reformat Phone Number.

Memory Usage: 42.6 MB, less than 15.09% of Java online submissions for Reformat Phone Number.


LeetCode 1694. Reformat Phone Number的评论 (共 条)

分享到微博请遵守国家法律