给定一个字符串数组(字符串长度和数组的长度均大于1且小雨1024),所有字符均为大写字母。请问,给定的字符串数组是否能通过更换数组中元素的顺序,从而首尾相连,形成一个环,环上相邻字符串首位衔接的字符相同

输入描述:
一行输入,空格分隔,表示字符串数组
输出描述:
一行输出,返回true或者false,表示是否可以形成环
输入1

CAT TIGER REC

输出1

true

输入2

CAT RPC

输出2

false

思路,设置一个bool,把第一个位置固定住,然后在fun里面寻找和k-1能首尾相连的字符串,找到了之后和第k个位置交换。。。。。。交换之后再寻找第k+1个位置。。。。。。。。然后回溯,把第k个位置交换回来,看看有没有其他能和第k个位置首位相连的。

#include <cstring>
#include <string>
#include <iostream>
#include <vector>
using namespace std;
bool flag = false;
void swap(vector<string> &arr, int s, int i)
{string tmp = arr[s];arr[s] = arr[i];arr[i] = tmp;return;
}
void fun(vector<string> arr, int n, int k)
{if(k==n){if(arr[k-1].back()==arr[0][0])flag = true;return;}for (int i = k; i < n; ++i) {if((arr[k-1].back()==arr[i][0])){swap(arr,k,i);fun(arr,n,k+1);swap(arr,k,i);}}
}
bool judge(vector<string> arr, int n)
{fun(arr, n, 1);if(flag) return true;else return false;
}
int main()
{vector<string> A;while(true){string s;cin>>s;A.push_back(s);char c = cin.get();if(c=='\n')break;}if(A.size()<1){cout<<"false"<<endl;return 0;}if(A.size()==1){if(A[0].back()==A[0][0]){cout<<"true"<<endl;}elsecout<<"false"<<endl;return 0;}if(judge(A,A.size())) cout<<"true"<<endl;else cout<<"false"<<endl;return 0;
}

编程题:首尾相连的字符串相关推荐

  1. 《好未来编程题》倒置字符串

    题目描述 将一句话的单词进行倒置,标点不倒置.比如 I like beijing. 经过函数后变为:beijing. like I 输入描述: 每个测试输入包含1个测试用例: I like beiji ...

  2. 【C++编程题2】字符串插入空格

    题目 从键盘输入一个字符串,然后按照下面要求输出 从键盘输入一个字符串,然后按照下面要求输出一个新字符串:新串是在原串中的每两个字符之间插入一个空格,如原串为 abcd,则新串为a口b口c口d口(口表 ...

  3. 牛客网编程题01--计算字符串最后一串单词的长度,单词以空格隔开,字符串小于5000

    *题目如下: 代码如下: // CalculateLength.cpp : 定义控制台应用程序的入口点. // 需求:计算字符串最后一串单词的长度,单词以空格隔开,字符串小于5000#include ...

  4. [编程题] 丑陋的字符串

    牛牛喜欢字符串,但是他讨厌丑陋的字符串.对于牛牛来说,一个字符串的丑陋值是字符串中相同连续字符对的个数.比如字符串"ABABAABBB"的丑陋值是3,因为有一对"AA&q ...

  5. 编程题:将字符串转换成整数 C++实现

    First:按照题目要求将一个字符串转换成一个整数,首先忽略掉前面的"+""-"后,主要的逻辑就是将字符串 中的元素一个一个拿出来转换成整数然后循环乘10后进行 ...

  6. 2019年秋招猿辅导笔试编程题解析字符串

    猿辅导笔试 编程题的解析字符串 5 A11B (AA)2A ((A2B)2)2G (YUANFUDAO)2JIAYOU A2BC4D2 输入如上,按照规则解析字符串 研究了下用栈写出来了,其实不难,加 ...

  7. 网易2017秋招编程题集合

    [编程题]回文序列 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,  {1, 2, ...

  8. c语言编写程序判断图的连通,图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)...

    博士期间估计这可能是唯一一个要编程的作业,搞了半天弄出这个东西,放这里为以后用到的时候查找方便. 说来也是可笑,读博士期间发现大家对上课也都没什么兴趣,老师也是那么回事,都说博士期间学的课程是要有助于 ...

  9. 平安科技2020校招技术岗部分编程题

    题目源自:平安科技2020校招技术岗部分编程题汇总 1. 字符串异构同质判定 请编码实现一个命令行工具,判定两个指定的字符串是否异构同质:异构同质的定义为:一个字符串的字符重新排列后,能变成另一个字符 ...

  10. POJ C++程序设计 编程题#7:字符串排序

    编程题#7:字符串排序 来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 总时间限制: 1000ms 内存限制: 1024k ...

最新文章

  1. Qt中的模型视图设计模式
  2. python 搜索插入位置
  3. Linux中profile、bashrc、bash_profile之间的区别和联系
  4. 45.Keepalived高可用群集
  5. 想要成为JAVA高手的25个学习目标
  6. mysql数据库sql审核_Inception SQL审核注解
  7. Java中的双重检查锁定
  8. 最优食品处方:14种改变你一生的食品
  9. js hover 触发事件_为什么说JS的DOM操作很耗性能
  10. 用sublime Text2来开发ruby on rails项目
  11. java实现多种格式视频上传、转码、播放、下载工具类
  12. 一个简单的python爬虫,以豆瓣妹子“http://www.dbmeizi.com/category/2?p= ”为例
  13. 微型计算机原理与接口实验报告,微型计算机原理与接口技术实验报告.doc
  14. Ant Design Vue表格序号递增问题
  15. DevOps和SRE
  16. IOS开发之工欲善其事必先利其器:Xcode
  17. 破解无线网络密码-BT3如何使用1
  18. Two Teams Composing
  19. 35岁以上高龄程序员,即将被裁员,该何去何从?
  20. 新闻列表案例(前端html,css)

热门文章

  1. 在linux下打开chm文件
  2. dep指定版本 go_将 dep 更换为 go mod
  3. 如何进入进计算机组策略,如何进入组策略?
  4. 华硕电脑连接不上wifi_华硕电脑不能连接wifi怎么办
  5. 一批信息查询网站汇总
  6. excel两列数据对比找不同_Excel教程:两列数据找不同最简单的方法
  7. 计算机组装实验老毛桃u盘报告,老毛桃winpe硬盘安装版制作教程
  8. 计算机导论与程序设计pdf,西安电子科技大学计算机导论与C语言程序设计 操作系统与常用办公软件知识.pdf...
  9. P2433 【深基1-2】小学数学 N 合一
  10. Python爬虫小项目——实现英语翻译功能(四)