【问题标题】:How do you use the for loop in this code?你如何在这段代码中使用 for 循环?
【发布时间】:2014-05-01 06:49:50
【问题描述】:
def binary_string(s):
编写一个接受字符串的函数,将其转换为二进制字符串
其中元音由 0 代替,辅音由 1 代替。
该函数应返回二进制字符串。
binary_string("卡伦")
'10101'
binary_string("Hello World!")
“10110 10111!”
if __name__ == '__main__':
import doctest
doctest.testmod(verbose = True)
【问题讨论】:
标签:
string
loops
for-loop
binary
【解决方案1】:
试试这样的。假设您的字符串变量的名称是“stringVar”。
string binaryString="";
for(int i=0;i<stringVar.Length();i++)
{
if(stringVar == 'a' || stringVar == 'A' || stringVar == 'e') //and so on
{
binaryString[i] = '0';
}
else
{
binaryString[i] = '1';
}
}//end for loop.
print(binaryString);
这应该会给你你正在寻找的结果。这是基本功能。其余的取决于您编码的语言。
希望这会有所帮助。
【解决方案2】:
由于您没有指定您想要解决方案的语言,所以我假设它是 java(从我这边)。虽然,算法对所有语言都有效。
代码
public class SO {
public static void main(String[] args) {
String s = "Karen";
char[] arr = s.toCharArray();
StringBuilder binary = new StringBuilder();
for (char c : arr) {
if(Character.isAlphabetic(c)){
if (isVowel(c)) {
binary.append("0");
}else{
binary.append("1");
}
}else{
binary.append(c);
}
}
System.out.println(binary);
}
private static boolean isVowel(char c) {
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
return true;
}
return false;
}
}
输出
When input is
String s = "Karen";
then output is
binary = 10101
和
When input is
String s = "Hello World!";
then output is
binary = 10110 10111!