feat: 1.3.0
1.优化代码
This commit is contained in:
		
							parent
							
								
									5f18a0e0c9
								
							
						
					
					
						commit
						3b9f62a8e2
					
				@ -21,73 +21,6 @@ import java.util.List;
 | 
			
		||||
@Slf4j
 | 
			
		||||
public class EasyRetryEndListener implements ApplicationListener<ContextClosedEvent> {
 | 
			
		||||
 | 
			
		||||
   static class Solution {
 | 
			
		||||
 | 
			
		||||
       public static void main(String[] args) {
 | 
			
		||||
           System.out.println(fullJustify(new String[]{"This", "is", "an", "example", "of", "text", "justification."}, 16));
 | 
			
		||||
       }
 | 
			
		||||
        public static List<String> fullJustify(String[] words, int maxWidth) {
 | 
			
		||||
            List<String> result = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
            int n = words.length;
 | 
			
		||||
            int start = 0; // 当前行的起始单词索引
 | 
			
		||||
 | 
			
		||||
            while (start < n) {
 | 
			
		||||
                int end = start; // 当前行的结束单词索引
 | 
			
		||||
                int lineLength = 0; // 当前行的字符总长度
 | 
			
		||||
 | 
			
		||||
                // 找到当前行可以容纳的最多单词
 | 
			
		||||
                while (end < n && lineLength + words[end].length() + (end - start) <= maxWidth) {
 | 
			
		||||
                    lineLength += words[end].length();
 | 
			
		||||
                    end++;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                int numWords = end - start; // 当前行的单词数量
 | 
			
		||||
                int numSpaces = maxWidth - lineLength; // 当前行需要插入的空格总数
 | 
			
		||||
 | 
			
		||||
                StringBuilder sb = new StringBuilder();
 | 
			
		||||
 | 
			
		||||
                // 处理特殊情况:只有一个单词或是最后一行
 | 
			
		||||
                if (numWords == 1 || end == n) {
 | 
			
		||||
                    for (int i = start; i < end; i++) {
 | 
			
		||||
                        sb.append(words[i]);
 | 
			
		||||
                        if (i < end - 1) {
 | 
			
		||||
                            sb.append(" ");
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    int remainingSpaces = maxWidth - sb.length();
 | 
			
		||||
                    while (remainingSpaces > 0) {
 | 
			
		||||
                        sb.append(" ");
 | 
			
		||||
                        remainingSpaces--;
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    int spacesPerWord = numSpaces / (numWords - 1); // 单词间的平均空格数
 | 
			
		||||
                    int extraSpaces = numSpaces % (numWords - 1); // 需要额外添加的空格数
 | 
			
		||||
 | 
			
		||||
                    for (int i = start; i < end; i++) {
 | 
			
		||||
                        sb.append(words[i]);
 | 
			
		||||
 | 
			
		||||
                        if (i < end - 1) {
 | 
			
		||||
                            int spacesCount = spacesPerWord;
 | 
			
		||||
                            if (extraSpaces > 0) {
 | 
			
		||||
                                spacesCount++;
 | 
			
		||||
                                extraSpaces--;
 | 
			
		||||
                            }
 | 
			
		||||
                            for (int j = 0; j < spacesCount; j++) {
 | 
			
		||||
                                sb.append(" ");
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                result.add(sb.toString());
 | 
			
		||||
                start = end;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private List<Lifecycle> lifecycleList;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user