1. 程式人生 > >OJ_單詞倒排

OJ_單詞倒排

連接線 a-z int 字符串 erl ngs ron rgs system

題目描述:對字符串中的所有單詞進行倒排。

說明:

1、每個單詞是以26個大寫或小寫英文字母構成,可以用一個“-”中連接線連接單詞兩部分表示一個單詞,但是僅限一個“-”,出現兩個“--”則為非構成單詞的字符;

2、非構成單詞的字符均視為單詞間隔符;

3、要求倒排後的單詞間隔符以一個空格表示;如果原字符串中相鄰單詞間有多個間隔符時,倒排轉換後也只允許出現一個空格間隔符;

4、每個單詞最長20個字母;

5、輸出字符串,否則輸出-1。

樣例輸入:

i*&* am--a good-student

樣例輸出:

good-student a am i

代碼示例:

public class WordReverseOrder {

    
public static void main(String[] args) { String string = "i*&*am--a good-student"; String express = "(?!(?<=[a-zA-Z]+)-(?=[a-zA-Z]+))[^a-zA-Z]+"; String[] strings = string.split(express); if (strings.length == 0) { System.out.println("-1"); }
else{ boolean overLength = false; StringBuffer stringBuffer = new StringBuffer(); for (int i = strings.length - 1; i >= 0; i--) { if (strings[i].length() > 20) { overLength = true; break; }
if (!"".equals(strings[i].trim())) { stringBuffer.append(strings[i] + " "); } } if (overLength || stringBuffer == null) { System.out.println("-1"); } else { System.out.println(stringBuffer.toString().trim()); } } } }

OJ_單詞倒排