第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

查找單詞中所有非重復(fù)字母的排列

查找單詞中所有非重復(fù)字母的排列

藍(lán)山帝景 2021-04-01 13:15:42
給定3個(gè)唯一字母:您是否可以使用遞歸函數(shù)打印字母的六個(gè)可能的非重復(fù)組合。“ cat”應(yīng)輸出:cat,act,atc,tac,tca和cta。這是我的程序,找不到遞歸算法。這是我的嘗試: static void findWords(StringBuilder string, int start, int stride) {    //1. iterate through all possible combinations of the chars recursively    System.out.println(string);    if (stride < string.length() && start < string.length())    {        char temp = string.charAt(stride);        string.setCharAt(stride, string.charAt(start));        string.setCharAt(start, temp);        findWords(string, start, stride + 1);        findWords(string, start + 1, stride + 1 );    }}public static void main(String[] args){   StringBuilder word = new StringBuilder("cat");   findWords(word,0,1);}
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

我使用的算法非常簡單。將每個(gè)字符設(shè)為字符串的第一個(gè)字符,然后查找與其他兩個(gè)字符的組合。因此,對于字符c,a,t,組合為


c at

c ta


a ct

a tc


t ca

t ac

代碼:


static void findWords(String str, int pos) {

    if(str == null || pos < -1) {

        return;

    }


    int len = str.length();

    if(pos + 1 < len) {

        findWords(str, pos + 1);

    }


    //find char swap positions

    int pos1 = (pos + 1) % len;

    int pos2 = (pos - 1 + len) % len;


    char[] chars = str.toCharArray();

    String str1 = new String(new char[] {chars[pos], chars[pos1], chars[pos2]});

    String str2 = new String(new char[] {chars[pos], chars[pos2], chars[pos1]});


    System.out.println(str1);

    System.out.println(str2);

}


public static void main(String[] args) {

    String word = new String("abc");

    findWords(word, 0);

}


查看完整回答
反對 回復(fù) 2021-04-21
  • 3 回答
  • 0 關(guān)注
  • 170 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號