题解 | #字符串的排列#

字符串的排列

http://www.nowcoder.com/practice/4f31423f126749ab9196c97c5117bcb9

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        ArrayList<String> ans=new ArrayList<>();
        String res=sc.nextLine();
        char[] arr=res.toCharArray();
        reverse(arr,0,arr.length-1,ans);
        HashSet<String> tmp=new HashSet<>(ans);
        ans.clear();
        for(String a:tmp){
            ans.add(a);
        }
        Collections.sort(ans);
         System.out.print(ans);
        
    }
    
    public static void reverse(char[] arr,int index,int len,ArrayList<String> ans){
        if(len==index){
            ans.add(change(arr));
           
        }
        for(int i=index;i<=len;i++){
            char tmp=arr[i];
            arr[i]=arr[index];
            arr[index]=tmp;
            reverse(arr,index+1,len,ans);
            tmp=arr[i];
            arr[i]=arr[index];
            arr[index]=tmp;
        }
    }
    private static String change(char[] arr){
        StringBuilder ans=new StringBuilder();
        for(char tmp:arr){
            ans.append(tmp);
        }
        return ans.toString();
    }
}

全部评论

相关推荐

07-18 18:05
门头沟学院 Java
挂了&nbsp;正式批求捞
投递滴滴等公司10个岗位
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务