Я понимаю, что есть много ответов, которые просто решают, как это сделать в Java, но я ищу решение, которое является концептуально похоже на реализацию, которую я мог бы выполнить в программе Python , поскольку это гораздо более знакомо мне.Сравнение char с индексом строки в java vs python
Моя функция Java cgRatio
берет строку ДНК и проходит через каждый индекс, чтобы подсчитать количество символов «C» и «G» в строке и вернуть отношение по отношению к длине строки. Например, если я прохожу следующую строку в качестве аргумента для функции: "ATGGCGCATTAA"
Я хотел бы получить возвращаемое значение 5/12 или поплавок 4.1666...
В Python, эта функция может быть записана в виде так:
def cgRatio(dna):
count = 0
for i in range(len(dna)):
if dna[i] == "C" or dna[i] == "G":
count += 1
return 1.0 * count/len(dna)
Простой print cgRatio("ATGGCGCATTAA")
даст желаемый результат.
Я видел решения, такие как принятие dna.charAt(i)
и преобразование их обратно в строку или создание новых объектов char
в начале функции для сопоставлений. Это слишком сложно для такой простой задачи. Является ли Python просто превосходным в этой задаче или есть более эффективный способ сделать это на Java?
Зачем вам преобразовывать его в строку? – Sayse
Я хочу сравнить строку с индексом символа. Python все равно, но Java не позволит мне просто dna [index] == "C". Реализация Java была бы похожа на dna.charAt (index) == ___, но я не могу использовать «C», потому что она читает ее как строку. – ASwiftPeregrine
Нет, Java требует 'dna [index] .equals (" C ")'. – IQV