从键盘任意输入10个英文单词,输出其中以元音字母开头的单词用Python语言编程?
这里记录在网易云课堂上的课后作业,Python环境为2.7,如果您有更好的算法还望斧正!
1.题目内容: “Pig Latin”是一个英语儿童文字改写游戏,整个游戏遵从下述规则:
(1). 元音字母是‘a’、‘e’、‘i’、‘o’、‘u’。字母‘y’在不是第一个字母的情况下,也被视作元音字母。其他字母均为辅音字母。例如,单词“yearly”有三个元音字母(分别为‘e’、‘a’和最后一个‘y’)和三个辅音字母(第一个‘y’、‘r’和‘l’)。
(2). 如果英文单词以元音字母开始,则在单词末尾加入“hay”后得到“Pig Latin”对应单词。例如,“ask”变为“askhay”,“use”变为“usehay”。
(3). 如果英文单词以‘q’字母开始,并且后面有个字母‘u’,将“qu”移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如,“quiet”变为“ietquay”,“quay”变为“ayquay”。
(4). 如果英文单词以辅音字母开始,所有连续的辅音字母一起移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如,“tomato”变为“omatotay”, “school” 变为“oolschay”,“you” 变为“ouyay”,“my” 变为“ymay ”,“ssssh” 变为“sssshay”。
(5). 如果英文单词中有大写字母,必须所有字母均转换为小写。
输入格式:
一系列单词,单词之间使用空格分隔。
输出格式:
按照以上规则转化每个单词,单词之间使用空格分隔。
输入样例:
Welcome to the Python world Are you ready
输出样例:
elcomeway otay ethay ythonpay orldway arehay ouyay eadyray
时间限制:500ms内存限制:32000kb
我的答案:
import string
s = raw_input()
words = s.split()
newWords = ''
for word in words:
tmp = word.lower()
if tmp[0] in 'aeiou':
tmp += 'hay'
elif tmp[0] == 'q' and tmp[1] == 'u':
tmp = tmp[2:] + 'quay'
else:
tmp = tmp[1:] + tmp[0]
for i in range(0, len(tmp)):
if tmp[i] in 'aeiouy':
break;
tmp = tmp[i:] + tmp[:i] + 'ay'
newWords += tmp + ' '
print newWords.strip()
用例
测试结果
运行时间
占用内存
提示
得分
1
通过
18ms
5236kb
1
2
通过
18ms
5236kb
1
2.题目内容: 依次判断一系列给定的字符串是否为合法的 Python 标识符。
输入格式:
一系列字符串,每个字符串占一行。
输出格式:
判断每行字符串是否为合法的 Python 标示符,如果合法则输出 True,否则输出 False。
输入样例:
abc
_def
21gh
输出样例:
True
True
False
时间限制:500ms内存限制:32000kb
import re
tmp = raw_input()
while(tmp != ''):
if not re.search(u'^[_a-zA-Z0-9]+$',tmp):
print False
elif not re.search(u'^[_a-zA-Z]+$',tmp[0]):
print False
else:
print True
tmp = raw_input()
用例
测试结果
运行时间
占用内存
提示
得分
1
通过
17ms
5112kb
1
3.题目内容: 依次计算一系列给定字符串的字母值,字母值为字符串中每个字母对应的编号值(A对应1,B对应2,以此类推,不区分大小写字母,非字母字符对应的值为0)的总和。例如,Colin 的字母值为 3 + 15 + 12 + 9 + 14 = 53
输入格式:
一系列字符串,每个字符串占一行。
输出格式:
计算并输出每行字符串的字母值。
输入样例:
Colin
ABC
输出样例:
53
6
时间限制:500ms内存限制:32000kb
tmp = raw_input()
while(tmp != ''):
num = 0
tmp = tmp.lower()
for c in tmp:
i = ord(c) - 96
if i 26:
i = 0
num += i
print num
tmp = raw_input()
用例
测试结果
运行时间
占用内存
提示
得分
1
通过
17ms
5112kb
1
2
通过
17ms
5116kb
1
# -*- coding: utf-8 -*-
import re
import string
while True:
s=raw_input("Input a string:")
ma=re.match("^[a-z]+$",s)
if ma:
l=re.findall("[aeiou]",s)
print "元音个数:",len(l)
print "辅音个数 :",len(s)-len(l)
break
for i in range(10):
b = input('请输入第'+str(i+1)+'个单词:')
if b[0].lower() in ['a', 'i', 'o', 'e', 'u']:
a.append(b)
for i in a:
print(i)
求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
为了实现C++程序,可以按照以下步骤来完成一个从键盘输入10个整数并按从小到大排序的功能:首先,创建一个结构体,名为`IntInfo`,包含整数值(数值域)、排名(排名域)和序号(序号域)。接着,定义一个`IntInfo`类型的数组`d`,用于存储输入的10个整数及其相关信息。定义两个自定义函数:`compareNu...
求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
要实现一个C++程序,可以从键盘输入10个整数并按升序排序,下面是具体步骤:首先,创建一个结构体,包含整数值(int),对应的排名(int)以及序号(int)。接着,定义一个结构体数组`d`来存储这10个整数的信息。自定义一个函数,用于比较两个整数的大小,这将在排序过程中起到关键作用。另一个函数则...
c语言从键盘输入任意的10个整数,从中找
C语言从键盘输入任意的10个整数,从中找出最大值和最小值的具体步骤如下:1、首先输入 include<stdio.h> int main(){ int arr[10] = {0};int i = 0;int max = 0;int min = 0;printf("请输入10个整数:");2、然后输入 for (i = 0; i < sizeof(arr)\/ sizeof(arr[0]); i+...
从键盘任意输入10个数,打印出其平均值。分别用while语句、do-while语句...
printf("%g",s\/10.0);return 0;}
由键盘任意输入10个整形数据(数据有序,利用折半查找),查找数据是否存在...
include <stdio.h> void main(){ int i,x,a[10],pos,low,high,mid;printf("请按照从小到大的顺序输入数据:\\n");for(i=0; i<10; i++){ scanf("%d",&a[i]);} printf("请输入要查找的数据:");scanf("%d",&x);pos=-1;low=0;high=9;do { mid = high+low\/2;if(x>a...
汇编语言,键盘任意输入10个1位十进制数,将它们累加求和,把和放在Sum...
assume cs:codecode segmentstart: mov cx, 10 mov bx, 0 mov ah,1$0: int 21h sub al,30h ;不做输入有效性检查 add bl,al adc bh,0 ;实际上需要,10个9相加也不超过al的范围 loop $0 mov ax, bx call print mov ah,4ch int 21h;print (ax) in decmialprint...
C语言 从键盘任意输入10个整数,求10个整数的和及平均值,用do……while...
代码如下:#include<stdio.h> void main(){ int sum=0,i,input;double ave;for(i=1;i<=10;i++){ printf("第%2.d个:",i);scanf("%d",&input);sum+=input;} ave=(double)sum\/(i-1);printf("和为:%d;平均数为:%f\\n",sum,ave);getch();} ...
求c语言大神。从键盘任意输入10个整数,存放在数组中,请计算数组中奇数和...
i,t=0,m=0,s[10];for(i=0;i<10;i++)scanf("%d",&s[i]);for(i=0;i<10;i++){ if(s[i]%2==0) t++;}printf("输出偶数是:%d\\n",t);for(i=0;i<10;i++){ if(s[i]%2!=0) m++;}printf("输出奇数是:%d\\n",m); return 0;} ...
从键盘任意输入10个不同的整数,利用顺序查找法,查找相应数据并输出该数...
void main(){ int c[10],a,i;for(i=0;i<10;i++){ printf("Input i Num:\\n",i);scanf("%d",&c[i]);} printf("Input the num:\\n");scanf("%d",&a);for(i=0;i<10;i++)if(c[i]==a) break;if(i>=10) printf("Not find!\\n");else printf("The %d Num is:%d...
用c语言编写一个程序,输入10个数求平均值。
C语言:编写一个程序,从键盘输入10个学生成绩,求平均成绩。1、虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。 C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。2、循环语句中进行10个数的累加在sum里面,然后...
经初乳酸: 1 输入; 2 排序; 3 输出. 参考代码如下: #include <stdio.h> int main() {int a[10];//用来存数据int i,j,temp; for(i = 0; i < 10; i ++)//输入10个数.scanf("%d",&a[i]);for (j = 0; j < 9; j++)//标准冒泡法排序for (i = 0; i < 9- j; i++){if(a[i] > a[i + ...
鹤城区17782621352: 在C语言中怎样用用数组实现键盘任意输入的10字母,然后输出这10个字母. - ?
经初乳酸: #include <stdio.h> int main(){ char chs[10]; int i; printf("Enter 10 characters: "); for(i=0;i<10;i++) scanf("%c",&chs[i]); for(i=0;i<10;i++) printf("%c ",chs[i]); printf("\n"); return 0; }
鹤城区17782621352: C语言编程:从键盘中输入一个英文字符串?
经初乳酸: #include<stdio.h> #include<stdlib.h> int main() { int strSize = 100; char *str = (char *)malloc(sizeof(char) * strSize); int charNum = 0; char input; //逐个字符输入字符串,可以输入int可以表示的最大值个字符 printf("请输入任意个字符:\n"); ...
鹤城区17782621352: c语言从键盘输入十个字母,要求大小写均包含.将全部字符分别转换成 - ?
经初乳酸: void main() { char ch; scanf("%c",&ch); if (c>='a' && c<='z') printf("%c\n",ch-'a'+'A'); elseif (c>='A' && c<='Z') printf("%c\n",ch-'A'+'a'); else printf("%c\n",ch); }
鹤城区17782621352: 题目:单词排序 从键盘输入10个英文单词,存入一个二维数组中A[][] 对二维数组中的单词进行排序(从小到大 - ?
经初乳酸: for (int i = 0; i < A.Length; i++){for (int j = A.Length - 1; j > i; j--){if (A[i] >A[j]){int temp = A[i];A[i] = A[j];A[j] = temp;}}}
鹤城区17782621352: 从键盘输入10个字符,把其中的小写字母输出 - ?
经初乳酸: #include int main(void) { int i=0; char c; while(i++ if(islower(c=getchar())) putchar(c); return 0; }
鹤城区17782621352: 从键盘输入10个不相同的一串英文字母,对这些无序的字符按照字母表顺序进行降序排序.然后输出排序后的字 - ?
经初乳酸: #include void main(void) { char ch[100];/*假设字符串最长100个字符*/ printf("请输入一个10个不同英文字符的字符串\n"); scanf("%s", ch); int len = strlen(ch);/*求字符串长度*/ for (int i=0; i for (int j=0; j if (ch[j] { char temp=ch[j]; ch[j]=ch[j+1]; ch[j+1]=temp; } printf("排序后的字符串为%s\n", ch); }
鹤城区17782621352: 从键盘输入10个英文字母,将这10个字符存入一个数组中,然后按照与输入顺序相反 - ?
经初乳酸: #include<stdio.h> void main(){ int i; char str[10]; for(i=0;i<10;i++){ printf("请输入第%d个字母:",(i+1)); scanf("%c",&str[i]); } printf("这10个字母按照输入顺序相反的排列是:"); for(i=9;i>=0;i--){ printf("%c ",str[i]); } }
鹤城区17782621352: c语言,从键盘上输入10个字符,将其中的小写英文字母转换成大写英文字母,并将结果显示出来.在线等待!! - ?
经初乳酸: #include void main() {int i; char c; for (i=0;i{c=getchar();//这一句不知道对不对?if (c>='a'&&cc=c-32; printf("%c ",c); } }
鹤城区17782621352: 从键盘上输入十个字符串,按从小到大输出 - ?
经初乳酸: #include #define N 10 void select_sort(int s[]) { int i, j, temp, min; for (i=0; i { min = i; for (j=i+1; j { if (s[j]} temp = s[i]; s[i] = s[min]; s[min] = temp; } return; } void bubble_sort(int s[]) { int i, j, temp, flag; for (i=N-1; i>=1; i--) { flag = 0; for (j=0; j { if (s[j] > s[j+1])...