zoukankan      html  css  js  c++  java
  • LeetCode_482. License Key Formatting

    482. License Key Formatting

    Easy

    You are given a license key represented as a string S which consists only alphanumeric character and dashes. The string is separated into N+1 groups by N dashes.

    Given a number K, we would want to reformat the strings such that each group contains exactly K characters, except for the first group which could be shorter than K, but still must contain at least one character. Furthermore, there must be a dash inserted between two groups and all lowercase letters should be converted to uppercase.

    Given a non-empty string S and a number K, format the string according to the rules described above.

    Example 1:

    Input: S = "5F3Z-2e-9-w", K = 4
    
    Output: "5F3Z-2E9W"
    
    Explanation: The string S has been split into two parts, each part has 4 characters.
    Note that the two extra dashes are not needed and can be removed.
    

    Example 2:

    Input: S = "2-5g-3-J", K = 2
    
    Output: "2-5G-3J"
    
    Explanation: The string S has been split into three parts, each part has 2 characters except the first part as it could be shorter as mentioned above.
    

    Note:

    1. The length of string S will not exceed 12,000, and K is a positive integer.
    2. String S consists only of alphanumerical characters (a-z and/or A-Z and/or 0-9) and dashes(-).
    3. String S is non-empty.
    package leetcode.easy;
    
    public class LicenseKeyFormatting {
    	public String licenseKeyFormatting(String S, int K) {
    		StringBuffer sb = new StringBuffer();
    		int count = 0;
    		for (int i = S.length() - 1; i >= 0; i--) {
    			char c = S.charAt(i);
    			if (c != '-') {
    				if (count > 0 && count % K == 0) {
    					sb.append('-');
    				}
    				sb.append(c);
    				count++;
    			}
    		}
    		return sb.reverse().toString().toUpperCase();
    	}
    
    	@org.junit.Test
    	public void test() {
    		System.out.println(licenseKeyFormatting("5F3Z-2e-9-w", 4));
    		System.out.println(licenseKeyFormatting("2-5g-3-J", 2));
    	}
    }
    
  • 相关阅读:
    个人便签
    秒杀系统架构分析与实战
    NPOI大数据分批写入同个Excel
    js获取鼠标坐标位置兼容多个浏览器
    月薪3万的程序员都避开了哪些坑
    怎样理解阻塞非阻塞与同步异步的区别?
    JS中的prototype
    互联网——降级论
    fedora自带OpenJDK,所以如果安装官方的JDK的话要先删除OpenJDK
    cygwin 安装完后不能进入think问题,网上99%都是错误的
  • 原文地址:https://www.cnblogs.com/denggelin/p/12034283.html
Copyright © 2011-2022 走看看