784-字母大小写排列

标签: 算法 数据结构 leetcode
13人阅读 评论(0) 收藏 举报
分类:

Description

Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string. Return a list of all possible strings we could create.


Examples:
Input: S = "a1b2"
Output: ["a1b2", "a1B2", "A1b2", "A1B2"]

Input: S = "3z4"
Output: ["3z4", "3Z4"]

Input: S = "12345"
Output: ["12345"]

Note:

  • S will be a string with length at most 12.
  • S will consist only of letters or digits.

问题描述

给定字符串S,我们可以将它的每个字母转换为大写或者小写来产生新的字符串。返回所有可以产生的字符串的列表


问题分析

回溯法


解法(backtrack)

class Solution {
    public List<String> letterCasePermutation(String S) {
        List<String> res = new ArrayList<>();

        backtracking(S.toCharArray(), 0, res);

        return res;
    }
    private void backtracking(char[] ch, int index, List<String> res) {
        if(index >= ch.length) {
            res.add(String.valueOf(ch));
        }else{
            char current = ch[index];
            backtracking(ch, index + 1, res);
            if(current >= 'A' && current <= 'Z') {
                ch[index] = (char)((int)'a' + (current - 'A'));
                backtracking(ch, index + 1, res);
            }else if(current >= 'a') {
                ch[index] = (char)((int)'A' + (current - 'a'));
                backtracking(ch, index + 1, res);
            }
        }
    }
}
查看评论

验证码之数字字母混合验证码

-
  • 1970年01月01日 08:00

按字母顺序排序,小写字母在前

class MyCompare implements Comparator{ @Override public int compare(String arg0, String arg1) ...
  • zhanghw_1229
  • zhanghw_1229
  • 2011-10-13 22:26:28
  • 318

大小写字母的排序

排序需要得到的结果按字母顺序。a-----z... import java.util.*; /** * 大小写字母的排序 * @author Administrator * */ publi...
  • lanchengxiaoxiao
  • lanchengxiaoxiao
  • 2012-05-14 17:40:24
  • 626

[Python/转换大写/小写/判断升序/降序]

#!/usr/bin/env python # -*- coding: utf-8 -*- class Str(object): def __str__(self): retu...
  • yyy72999
  • yyy72999
  • 2017-06-26 16:22:05
  • 313

C#判断字母大小写

Console.Write("请输入10个英文字母:");             var input = Console.ReadLine();             var uper = n...
  • laoyaozaici1023
  • laoyaozaici1023
  • 2016-07-26 09:34:32
  • 963

字符串字母全排列练习

 输入例子: WHL 输出例子:按字母序输出 HLW HWL LHW LWH WHL WLH import java.util.Scanner; impo...
  • bigthinker
  • bigthinker
  • 2016-06-29 20:26:57
  • 387

洛谷1341 无序字母对 解题报告

【问题描述】        给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒)。请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现。         【输...
  • cqyz_holiday
  • cqyz_holiday
  • 2016-07-10 13:54:00
  • 711

状态栏字母大小写.rar

  • 2010年03月28日 22:52
  • 953B
  • 下载

python 按普通字典排序(小写字母,排在大写字母前)

str.sort(key=str.lower) spam = ['a','z','A','C'] spam.sort() print(spam) spam.sort(key=str.lower) p...
  • loujingxian
  • loujingxian
  • 2017-03-19 18:47:10
  • 444

字母大小写分类排序输出

给你一个只有大写字母或者小写字母的单词。对于这个单词,首先将所有的大写字母和小写字母分别按字典序排序;然后,如果大写字母个数多于小写字母,将大写字母全部放在小写字母前面;如果大写字母个数少于小写字母,...
  • wuhui2356
  • wuhui2356
  • 2015-05-16 18:53:58
  • 759
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 2万+
    积分: 6912
    排名: 4307
    博客专栏
    文章存档
    最新评论