784. Letter Case Permutation

784. Letter Case Permutation
[思路]:
对于一个字母和数字字符串,返回大写和小写的所有可能序列;
那么我们遍历每个字符,遇到字母替换大小写:
我的想法利用队列,遍历每个字符,将每种可能存到队列中,然后一个个替换,生成所有可能的字符串;

    vector<string> letterCasePermutation(string S) {
        deque<string> q;
        vector<string> s;
        string temp;
        if(S.empty()){ //如果为空,返回空字符串
            s.push_back("");
            return s;
        }
        q.push_back(S);//入队列
        for(int i=0;i<S.length();i++){
            int len = q.size(); //字符串可能性
            for(int j=0;j<len;j++){
               temp = q.front();
                q.pop_front();
                if(isalpha(temp[i])){ //为字符
                    temp[i] = toupper(temp[i]);
                    q.push_back(temp); //大写入队列
                    temp[i] = tolower(temp[i]); //小写入队列
                    q.push_back(temp);        
                }else{
                    q.push_back(temp); //数字,重新入队,退出循环
                    break;
                }     
            }     
        }
        
        for(string str : q){//存入vector
            s.push_back(str);
        }

          return s;    
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,310评论 1 44
  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 1,151评论 0 4
  • 生离死别,千百年来文章的主题,面对告别我们必须有一个态度,那就是好好告别。 今天一个朋友推荐我看《朗读者》,刚才睡...
    二十一加七阅读 358评论 1 2