北京交通管制信息网站wordpress 获取页面标题
news/
2025/9/23 12:03:19/
文章来源:
北京交通管制信息网站,wordpress 获取页面标题,影视会员网站怎么建设,公司域名让做网站的题目
输入一个字符串#xff0c;打印该字符中字符的所有排列。
例如#xff0c;输入字符串abc#xff0c;则打印出由字符a、b、c所能排列出来的所有字符串有abc、acb、bac、bca、cab、cba
分析
把一个字符串看成由两部分组成#xff1a;第一部分是它的第一个字符#…题目
输入一个字符串打印该字符中字符的所有排列。
例如输入字符串abc则打印出由字符a、b、c所能排列出来的所有字符串有abc、acb、bac、bca、cab、cba
分析
把一个字符串看成由两部分组成第一部分是它的第一个字符第二部分是后面的所有字符。 求整个字符串的排列可以看成两步
求所有可能出现在第一位置即把第一个字符和后面所有的字符交换。固定第一个字符求后面所有的排列递归套用将后面所有字符分成两部分后面字符的第一个字符以及这个字符之后的所有字符回到步骤1。递归结束条件后面字符的数量为1。 放码
import java.util.ArrayList;
import java.util.List;import com.lun.util.MyUtils;public class CharsPermutation {public ListString permute(String src) {ListString list new ArrayList();if(!MyUtils.checkStringEmpty(src))permute(list, , src.toCharArray(), 0);return list;}private void permute(ListString list, String mid, char[] src, int index) {if(index src.length) {list.add(mid.toString());}else {for(int i index; i src.length; i) {swap(src, i , index);permute(list, mid src[index], src, index 1);swap(src, i , index);}}}private void swap(char[] src, int i, int j) {char temp src[i];src[i] src[j];src[j] temp;}}测试
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;import java.util.List;
import org.junit.Test;public class CharsPermutationTest {Testpublic void testPermute() {CharsPermutation cp new CharsPermutation();ListString list cp.permute(abc);//System.out.println(list);assertThat(list, containsInAnyOrder(abc,acb,bac,bca,cba,cab));}}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912478.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!