题目:
1221. 分割平衡字符串 - 力扣(LeetCode)
* 在一个 平衡字符串 中,‘L’ 和 ‘R’ 字符的数量是相同的。
* 给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。
* 注意:分割得到的每个字符串都必须是平衡字符串,且分割得到的平衡字符串是原平衡字符串的连续子串。
* 返回可以通过分割得到的平衡字符串的 最大数量 。
* 附加:并返回分割出的子字符串
package Exercise;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 2023/10/31
*/
public class 平衡字符串 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入字符串:");
String s=scan.next();
System.out.println("一共可分割为"+excision(s)+"段");
}
public static int excision(String s){
int numL=0;
int numR=0;
int cnt=0;
int begin=0;
int end;
List<String> list=new ArrayList<>();
for(int i=0;i<s.length();i++){
if (s.charAt(i)=='L'){
numL++;
}
if (s.charAt(i)=='R'){
numR++;
}
if (numL==numR){
cnt++;
end=numR+numL;
String part=s.substring(begin,end);
list.add(part);
begin=end;
}
}
System.out.println("分割出的子字符串分别为:");
for (int i=0;i<list.size();i++){
System.out.print(list.get(i)+" ");
}
System.out.println();
return cnt;
}
}
请输入字符串:
LLRRLRRLLLRR
分割出的子字符串分别为:
LLRR LR RL LLRR
一共可分割为4段
进程已结束,退出代码为 0