发布网友
共7个回答
懂视网
NO 2 3 //这两行中出现数据冗余 2 3 //冗余出现在上面两行的这两列中 YES
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <sstream> #include <set> #include <map> #include <vector> #include <algorithm> using namespace std; vector<string> split(string source, string pattern) { vector<string> res; int spos = 0, epos, p_len = pattern.length() - 1,s_len = source.length()-1; source += pattern; char col = ‘1‘; while (spos<s_len && (epos = source.find(pattern,spos))&&epos!=string::npos) { stringstream stream; stream << col++; //在末尾加上列号,可以防止出现因为不同列数据重复现象 res.push_back((source.substr(spos, epos - spos)).append(stream.str())); spos = epos + 1; } return res; } int main() { FILE *fp = freopen("data5_9.in", "r", stdin); freopen("data5_9.out", "w", stdout); string line; int row, col; while ((cin >> row)&&row!=0) { //获取行列数 cin >> col; vector<string> str_vec; set<string> str_set; map<string, int> str_map; vector<int> res; //保存两行,一列重复 for (int r = 1; r <= row; r++) { getchar(); getline(cin, line); //重点使用 str_vec = split(line, ","); //由于没有split字符串分割函数,使用find和substr进行分割 vector<string>::iterator iter = str_vec.begin(); //进行迭代插入 int c = 1; for (; iter != str_vec.end(); iter++) { if (!str_set.count(*iter)) { str_set.insert(*iter); str_map[*iter] = r * 10 + c++; } else //出现同一列重复 { int r_r = (str_map[*iter] / 10)*10 + r; //23表示第2,3行重复 res.push_back(r_r*10+c++); //将重复的行列添加到res映射中 } } } if (res.empty()) //进行结果输出 cout << "YES" << endl; else { cout << "NO" << endl; int r_r = res.front(); cout << r_r / 100 << ‘ ‘ << r_r / 10 % 10 << endl; //输出行 for (vector<int>::iterator it = res.begin(); it != res.end(); it++) cout << *it % 10 << " "; //输出列 cout << endl; } } freopen("CON", "r", stdin); freopen("CON", "w", stdout); return 0; }
算法习题---5.9数据库(Uva1592)
标签:不同 int cin iostream begin 检测 算法 append mpi
热心网友
回答稍等Copyright © 1999-2020, CSDN.NET, All Rights Reserved

 登录

DY_浅陌初心
关注
python算法题 原创
2018-06-23 10:44:47
 2点赞

DY_浅陌初心 
码龄4年
关注
1 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的四位数?都是多少?
for a in range( 1, 5):
for b in range( 1, 5):
for c in range( 1, 5):
for d in range( 1, 5):
if(a!=b and a!=c and a!=d and b!=c and b!=d and c!=d):
print(a,b,c,d)
运行结果

注意:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
2 题目:打印出国际象棋图

分析:行为0-7,列为0-7,当行列之和为奇数时为黑色

import sys
for i in range( 8):
for j in range( 8):
if (i + j) % 2 != 0:
print( chr( 219), end= '')
print( chr( 219), end= '')
else: print( ' ', end= '')
print( ' \n ', end= '')

3题目: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
判断是否为字母:str.isspace
判断是否为空格:str.isalpha
判断是否为数字:str.isdigit
判断是否为其他字符:前三种都不是就是其他字符
输入: str = input( 'please input a string:\n' )
space = 0
digit= 0
alpha= 0
other= 0
str = "12jdfj wjdf dfj wejwi jsdifj,,nfiraj "
提问错
回答。
热心网友
这个就是循环2n次呀。先是让x=x+c,在把c更新一下c=c+b,最后让b=b+a,这就完成一次循环了。
不过你给的程序不完整。
热心网友
付费内容限时免费查看回答1 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的四位数?都是多少?
for a in range( 1, 5):
for b in range( 1, 5):
for c in range( 1, 5):
for d in range( 1, 5):
if(a!=b and a!=c and a!=d and b!=c and b!=d and c!=d):
print(a,b,c,d)
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
(1)将A塔上编号1~
热心网友
根据每一次循环之后x的值: 1,8,27,.....
可以得到规律X[i] = i的立方 i = 1, 2, 3, 4....i是循环次数
所以程序的功能是计算2*n的结果的立方
热心网友
这个也要问,
实在不会就写个程序跑一遍呗
热心网友
程序不对,n 没有定义啊