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));
    	}
    }
    
  • 相关阅读:
    (模板)高斯消元法模板
    poj1797(dijstra变形,求最小边的最大值)
    poj2253(floyd变形)
    (模板)poj2387(dijkstra+优先队列优化模板题)
    poj1915(双向bfs)
    poj3977(折半枚举+二分查找)
    uva11624 Fire! (bfs预处理)
    codeforces#1152C. Neko does Maths(最小公倍数)
    codeforces#1154F. Shovels Shop (dp)
    codeforces#1136E. Nastya Hasn't Written a Legend(二分+线段树)
  • 原文地址:https://www.cnblogs.com/denggelin/p/12034283.html
Copyright © 2011-2022 走看看