首尾字母是否相同
来源:互联网 发布:淘宝皇冠店值多少钱 编辑:程序博客网 时间:2024/04/30 17:25
本周做了一个yixin的模拟笔试题。由于不能把题目泄出,就简单的描述一下题目。
题目简述
输入几个单词,判断这些单词是否在下列所述的列表中。该列表从第二个单词开始的首字母与前一个单词的尾字母相同。第一个单词的首字母没有限制。若符合条件,返回1,否则,返回-1。
输入案例
4 [hello, how, are, you]
返回-1。
4 [hello, ohai, iostream, measure]
返回1。
思路
我们把输入的字符串先统一放到一个字符串里。再定义一个二维数组,把每个单词分开,以便后面的判断。
推荐使用fgets取代gets。注意使用前用fflush(stdin)来清除stdin的缓存数据。
注意字符串的输入形式,有[,逗号和空格,最后还有一个],判断好这些字符,才能准确的把一整个单词放入二维数组中。
代码如下:
#include <stdio.h> #include <string.h> #define MAX_LEN 200 #define MAX_BUF 1000 int ArrNum(int num, char str[][MAX_LEN]) { int i, j; //printf("%d\n", num); for(i = 0; i < num - 1; i++) { j = strlen(str[i]) - 1; //printf("%d", j); //printf("%c %c", str[i][j], str[i + 1][0]); if(str[i][j] != str[i + 1][0]) { //printf("%c %c", str[i][j], str[i + 1][0]); return -1; } } return 1; } int main() { char buf[MAX_BUF]; char words[MAX_LEN][MAX_LEN]; // = {"asd","asdas", "SAdas", "asddddd"}; int n = 4; //, frist, second; int i = 1, j = 0, z = 0; scanf("%d", &n); fflush(stdin); fgets(buf, MAX_BUF, stdin); while(buf[i]) { if(',' == buf[i] && ' ' == buf[i + 1]) { i += 2; j++; z = 0; } else if(']' == buf[i]) { break; } words[j][z] = buf[i]; z++; i++; } printf("%d", ArrNum(n, words)); return 0; }
0 0
- 首尾字母是否相同
- 字符串是否有相同的字母
- 判断字符串中是否有相同字母
- 字符串问题1:单词是否由相同字母组成
- java 判断两个String 是否是相同字母异序词
- 242.两个字符串是否是由相同字母(出现次数也相同)组成的
- 相同的字母
- 去除相同的字母
- leetcode解题之242# Valid Anagram Java版 (判断两个字母串是否具有相同的字母组合)
- C语言实现检查单词是否为变位词(相同字母的重新排列)
- [软件测试]三个相同输入框的内容是否为字母,数字
- 字符串中是否存在相同的字母、回文数的判断
- PHP提交含有CheckBox的表单,比对字符串是否含有相同字母
- 按照单词的字母是否相同对字符串数组进行分组
- Valid Anagram:验证不考虑字母顺序不同的单词是否相同
- 面试题89:字符串数组首尾字符相同
- 首尾字符相同的子字符串的数目
- 【变形课】求多个字符串首尾特定字母路径问题
- VS2015 + opencv3.1 环境配置记录
- 严重: IOException while loading persisted sessions:java.io.EOFException
- 使用GitHub Pages + Hexo 快速搭建个性化博客(七)-编辑博文
- 提示"此证书的签发者无效",原因系统认证证书
- 亲爱的程序猿们怎么找工作
- 首尾字母是否相同
- set类
- 最后一个单词的长度
- VC++中,如何定义callback函数和它的触发事件?
- listview或者gridview 实现单选效果
- vc 判断哪个按键 被按下 消息 按键 状态
- Android Studio check update失败
- 整数转换成罗马数字
- iOS didReceiveMemoryWarining